Trackings.ge
  • მთავარი
  • სერვისები
  • თრექინგი
  • ფასები
  • FAQ
  • კონტაქტი
  • შესვლა
  • ქარ
    • English
    • ქართული
    • русский

Trackings.GE API დოკუმენტაცია

  • მთავარი
  • Trackings.ge API Documentation
Menu
  • Introduction
  • Addresses / PUDO's
    • Geography API
    • Regions API
    • Retrieve Cities
    • Cities By Region
    • Pudos API
    • PUDO Points
    • PUDO Cities
    • PUDOs in City
    • Addresses API
    • Addresses GET
    • Create Address POST
    • Address by ID GET
    • Update Address PUT
    • Delete Address DELETE
  • Orders API
    • Orders GET
    • Create Order POST
    • Update Order PUT
    • Order by ID GET
    • Delete Order DELETE
  • Pricing
  • Invoices

Introduction DOWNLOAD JSON SCHEMA

The Trackings.ge API is designed for creating, managing, and tracking parcel deliveries.

It provides a simple and secure way for clients and systems to integrate parcel operations into their own workflows.

The API is built around three main concepts: Addresses, PUDOs, and Orders.

Addresses and PUDOs

Before creating an order, you must define where parcels will be picked up and delivered.

An Address is a precise user-saved location such as a sender’s or receiver’s physical address.

A PUDO (Pick-Up Drop-Off point) is a predefined service location where parcels can be dropped off or picked up instead of using a courier.

Clients can manage sender and receiver addresses, check available cities and PUDOs, and use this information when creating or updating an order.

Orders

An Order is the core object that represents a shipment.

When placing an order, you link the pickup and delivery methods (Courier or PUDO), the sender and receiver information, parcel details (weight, quantity, insurance, special instructions), and payment conditions.

Orders move through different statuses as they progress — for example, label created, picked up by courier, delivered, or returned.

API Rate Limiting

To ensure fair usage and system stability, all API clients are subject to rate limits. By default, each client is allowed up to 60 requests per minute per IP address or authenticated user.

If you exceed the allowed request limit, the server will respond with an HTTP 429 Too Many Requests status code. In this case, you should implement an exponential back-off strategy and retry after the time specified in the Retry-After response header.

Addresses & PUDOs: Geographic Objects

In the Trackings.ge API, the core of the parcel delivery process starts with geographic objects — specifically Addresses and PUDOs (Pick-Up Drop-Off points).

Addresses represent physical delivery or pickup locations provided by users — for example, a sender’s warehouse or a receiver’s home address. Each address includes detailed information such as the street address, city, geographic coordinates (latitude and longitude), and the type (SENDER or RECEIVER). These details ensure that couriers can locate both the sender and the recipient accurately.

PUDOs are predefined Pick-Up Drop-Off locations. These are official service points where customers can drop off parcels for shipment or pick up incoming parcels at their convenience. Using PUDOs offers flexibility for senders and receivers who prefer to manage deliveries outside of door-to-door courier services.

How Geographic Objects Work

  1. Create or Retrieve Addresses

    Clients first create or fetch saved addresses using the Addresses API. This stores precise location data in the system for both senders and receivers.

  2. Select PUDOs if Needed

    When a user chooses PUDO as their pickup or delivery method, they select a suitable PUDO point (instead of providing a custom address). The system verifies that the chosen PUDO exists and is valid for the selected city.

  3. Create an Order

    Once the sender’s and receiver’s locations are defined (either by address or PUDO), they become part of the Order. An order links these locations with parcel details, delivery instructions, payment terms, and service options (like COD, insurance, or express delivery).

GET Regions API

The /api/geo/regions endpoint provides a complete list of regions available in the Trackings.ge delivery network.

Regions are higher-level geographic areas (such as provinces or administrative divisions) that organize cities and locations under a common administrative boundary. Using regions helps structure your addresses and PUDO points correctly and improves delivery route accuracy.

Request
  • URL: https://trackings.ge/api/geo/regions
  • Method: GET
  • Authentication Required: Yes
  • Header: Authorization: Bearer YOUR_ACCESS_TOKEN
Response
  • Status: 200 OK
  • Content-Type: application/json
Example Fields
Field Type Description
id integer Unique identifier for the region
name_en string Region name in English
name_ka string Region name in Georgian (ქართული)
name_ru string Region name in Russian (Русский)
name string Default region name (usually Georgian)
latitude string Latitude coordinate of the region location
longitude string Longitude coordinate of the region location
Successful Response (200 OK)
{
   "data":[
      {
         "id":1,
         "name":"თბილისი",
         "name_en":"Tbilisi",
         "name_ka":"თბილისი",
         "name_ru":"Тбилиси",
         "latitude":"41.7151",
         "longitude":"44.8271"
      },
      {
         "id":2,
         "name":"იმერეთი",
         "name_en":"Imereti",
         "name_ka":"იმერეთი",
         "name_ru":"Имерети",
         "latitude":"42.166667",
         "longitude":"42.983333"
      }
      ...
   ]
}

GET Retrieve Cities

The Cities API returns a full list of all cities and municipality administrative centers in Georgia. There are 64 main cities that can be used as pickup or delivery locations when creating addresses and parcels.

Request
  • URL: https://trackings.ge/api/geo/cities
  • Method: GET
  • Authentication Required: Yes
  • Headers:
    • Authorization: Bearer YOUR_ACCESS_TOKEN
    • Accept: application/json
Response
  • Status: 200 OK
  • Content-Type: application/json
Example Fields
Field Type Description
id integer Unique identifier for the city
name string City name in the default language (usually Georgian)
name_en string City name in English
name_ru string City name in Russian
Successful Response (200 OK)
{
   "data":[
      {
         "id":1,
         "name":"თბილისი",
         "name_en":"Tbilisi",
         "name_ru":"Тбилиси"
      },
      {
         "id":578,
         "name":"ბათუმი",
         "name_en":"Batumi",
         "name_ru":"Батуми"
      },
      {
         "id":25,
         "name":"ქუთაისი",
         "name_en":"Kutaisi",
         "name_ru":"Кутаиси"
      }
      ...
   ]
}

GET Cities By Region

The Cities By Region API provides all cities, towns, and municipality centers within a specific region in Georgia. This helps you build dynamic address forms by showing only valid cities for the selected region.

Request
  • URL: https://trackings.ge/api/geo/region/{region_id}/cities
  • Method: GET
  • Authentication: Bearer Token Required
  • Authorization: Bearer YOUR_ACCESS_TOKEN
Path Parameters
Parameter Type Description
region_id integer ID of the region to fetch its cities (e.g., 2 for Imereti).
Response
  • Status: 200 OK
  • Content-Type: application/json

The response returns a JSON array containing all cities and municipalities within the specified region.

{
   "regions":[
      {
         "id":14,
         "name":"ქუთაისი",
         "cities":[
            {
               "id":25,
               "name":"ქუთაისი"
            }
         ]
      },
      {
         "id":17,
         "name":"ზესტაფონის მუნიციპალიტეტი",
         "cities":[
            {
               "id":92,
               "name":"ზესტაფონი"
            },
            {
               "id":121,
               "name":"მეორე სვირი"
            }
            ...
         ]
      }
      ...
   ]
}

GET PUDO Points

The PUDO API returns a list of all active Pick-Up/Drop-Off points across Georgian cities. These are official drop-off locations where senders and receivers can deliver or pick up parcels conveniently.

Request
  • URL: https://trackings.ge/api/geo/pudos
  • Method: GET
  • Authentication: Bearer Token Required
  • Authorization: Bearer YOUR_ACCESS_TOKEN
Response
  • Status: 200 OK
  • Content-Type: application/json
Field Type Description
id integer Internal ID of the PUDO record
city_id integer Unique ID of the city the PUDO belongs to
pudo_id integer Identifier for the PUDO point
name_ka string Name of the PUDO in Georgian
city_name string Name of the city
latitude string Latitude coordinate of the PUDO location
longitude string Longitude coordinate of the PUDO location
city object Detailed city info (ID, names in different languages)
Successful Response (200 OK)
{
  "data": [
    {
      "id": 1,
      "city_id": 578,
      "name_ka": "კანდელაკის 2",
      "city_name": "ბათუმი",
      "latitude": "41.64568614000878",
      "longitude": "41.6464084834973",
      "city": {
        "id": 578,
        "name": "ბათუმი",
        "name_en": "Batumi",
        "name_ru": "Батуми"
      }
    },
    ...
  ]
}
Example CURL Request
curl -X GET "https://trackings.ge/api/geo/pudos" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

GET PUDO Cities

The PUDO Cities API provides a list of all cities that currently have active Pick-Up/Drop-Off (PUDO) points. This helps your application show only valid cities for PUDO-based parcel operations.

Request
  • URL: https://trackings.ge/api/geo/pudo/cities
  • Method: GET
  • Authentication: Bearer Token Required
  • Authorization: Bearer YOUR_ACCESS_TOKEN
Response
  • Status: 200 OK
  • Content-Type: application/json
Field Type Description
id integer ID of the city associated with PUDO points
name string City name in Georgian
name_en string City name in English
name_ru string City name in Russian
Successful Response (200 OK)
{
  "data": [
    {
      "id": 1,
      "name": "თბილისი",
      "name_en": "Tbilisi",
      "name_ru": "Тбилиси"
    },
    {
      "id": 578,
      "name": "ბათუმი",
      "name_en": "Batumi",
      "name_ru": "Батуми"
    },
    {
      "id": 25,
      "name": "ქუთაისი",
      "name_en": "Kutaisi",
      "name_ru": "Кутаиси"
    }
    ...
  ]
}
Example CURL Request
curl -X GET "https://trackings.ge/api/geo/pudo/cities" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

GET PUDOs in City

The PUDOs in City API returns all Pick-Up/Drop-Off (PUDO) points for a specific city. Use this to display only relevant PUDO locations to your customers, based on their selected city.

Request
  • URL: https://trackings.ge/api/geo/city/{city_id}/pudos
  • Method: GET
  • Authentication: Bearer Token Required
  • Authorization: Bearer YOUR_ACCESS_TOKEN
Path Parameters
Parameter Type Description
city_id integer ID of the city (for example, 1 for Tbilisi)
Response
  • Status: 200 OK
  • Content-Type: application/json
Fields
Field Type Description
id integer Internal ID of the PUDO record
city_id integer ID of the city the PUDO belongs to
pudo_id integer Identifier for the PUDO point
name_ka string PUDO address in Georgian
city_name string Name of the city
latitude string Latitude coordinate of the PUDO location
longitude string Longitude coordinate of the PUDO location
city object Associated city details (ID, name in multiple languages)
Successful Response (200 OK)
{
  "data": [
    {
      "id": 3,
      "city_id": 1,
      "name_ka": "კორნელი კეკელიძის 10",
      "city_name": "თბილისი",
      "latitude": "41.70722649580358",
      "longitude": "44.77840054836694",
      "city": {
        "id": 1,
        "name": "თბილისი",
        "name_en": "Tbilisi",
        "name_ru": "Тбилиси"
      }
    }
    ...
  ]
}
Example CURL Request
curl -X GET "https://trackings.ge/api/geo/city/1/pudos" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"

GET Addresses

The Addresses API returns all saved addresses for the authenticated user. You can filter results by type to get either sender or receiver addresses. Each address includes the full address, coordinates, city information, and the state which is the administrative center for that location.

Request
  • URL: https://trackings.ge/api/addresses
  • Method: GET
  • Authentication: Bearer Token Required
  • Authorization: Bearer YOUR_ACCESS_TOKEN
Query Parameters
Parameter Type Description
type string Optional. Filter addresses by type: SENDER or RECEIVER
Example Requests
  • GET https://trackings.ge/api/addresses
  • GET https://trackings.ge/api/addresses?type=SENDER
  • GET https://trackings.ge/api/addresses?type=RECEIVER
Response
  • Status: 200 OK
  • Content-Type: application/json
Fields
Field Type Description
id integer Unique address ID
type string Address type: SENDER or RECEIVER
address string Full address text
latitude string Latitude coordinate
longitude string Longitude coordinate
created_at string Timestamp when the address was created
state string Administrative center of the address location
city object Associated city info (ID, name in multiple languages)
Successful Response (200 OK)
{
  "data": [
    {
      "id": 4026,
      "address": "ლერმონტოვის 16.",
      "city_id": 578,
      "type": "RECEIVER",
      "latitude": "41.643656",
      "longitude": "41.625172",
      "created_at": "2025-07-08T15:26:09.000000Z",
      "state": "ბათუმი",
      "city": {
        "id": 578,
        "name": "ბათუმი",
        "name_en": "Batumi",
        "name_ru": "Батуми"
      }
    },
    {
      "id": 4025,
      "address": "გურამიშვილის გამზირი 15.",
      "city_id": 1,
      "type": "SENDER",
      "latitude": "41.7562173",
      "longitude": "44.7899982",
      "created_at": "2025-07-08T15:26:08.000000Z",
      "state": "თბილისი",
      "city": {
        "id": 1,
        "name": "თბილისი",
        "name_en": "Tbilisi",
        "name_ru": "Тбилиси"
      }
    }
  ]
}
Example CURL Request
curl -X GET "https://trackings.ge/api/addresses?type=RECEIVER" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

POST Create Address

Use the POST /api/addresses endpoint to create a new address for the authenticated user. The address can be either a sender or receiver address, and the system will automatically geocode it.

Request
  • URL: https://trackings.ge/api/addresses
  • Method: POST
  • Authentication: Bearer Token Required
  • Headers: Content-Type: application/json
  • Authorization: Bearer YOUR_ACCESS_TOKEN
Request Body
Field Type Required Description
address string Yes Full address text (max 255 characters)
type string Yes Address type: SENDER or RECEIVER
city_id integer Yes ID of the city. Use the /api/geo/cities endpoint to get valid IDs
Example Request Body
{
  "address": "ჭავჭავაძის გამზირი 25",
  "city_id": 1,
  "type": "RECEIVER"
}
Example cURL
curl -X POST "https://trackings.ge/api/addresses" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "address": "ჭავჭავაძის გამზირი 25",
    "type": "SENDER",
    "city_id": 1
  }'
Successful Response
  • Status: 200 Created
  • Content-Type: application/json
Successful Response (200 OK)
{
  "address": {
    "id": 5142,
    "address": "ჭავჭავაძის გამზირი 25",
    "city_id": "1",
    "type": "RECEIVER",
    "latitude": 41.7102985,
    "longitude": 44.7670951,
    "created_at": "2025-07-15T13:09:07.000000Z",
    "state": "თბილისი",
    "city": {
      "id": 1,
      "name": "თბილისი",
      "name_en": "Tbilisi",
      "name_ru": "Тбилиси"
    }
  },
  "type": "RECEIVER",
  "message": "თქვენი მისამართი წარმატებით დაემატა"
}
Response Fields
Field Type Nullable Description
address object No Contains details about the created address
type string No Type of address: SENDER or RECEIVER
message string No Success message
address object fields:
Field Type Nullable Description
id integer No Unique ID of the address
address string No Full address text
city_id integer No ID of the city
type string No Type: SENDER or RECEIVER
latitude float No Latitude coordinate
longitude float No Longitude coordinate
state string No Administrative center of the address location
created_at string No Timestamp when address was created
city object No Contains localized city info

Note: The latitude and longitude are automatically generated. Make sure you use a valid city_id. Use /api/geo/cities or /api/geo/region/{region_id}/cities to get valid city IDs.

GET Retrieve Individual Address

Use the GET /api/addresses/{id} endpoint to retrieve a specific address belonging to the authenticated user. The response returns full address details, including the linked city and geographic coordinates.

Request
  • URL: https://trackings.ge/api/addresses/{id}
  • Method: GET
  • Authentication: Bearer Token Required
  • Content-Type: application/json
Path Parameters
Parameter Type Required Description
id integer Yes ID of the address to be retrieved
Example cURL
curl -X GET "https://trackings.ge/api/addresses/5142" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Successful Response
  • Status: 200 OK
  • Content-Type: application/json
Response Fields
Field Type Description
id integer Unique ID of the address
address string Full address text
city_id integer ID of the city
type string Type: SENDER or RECEIVER
latitude string Latitude coordinate
longitude string Longitude coordinate
created_at string Creation timestamp (ISO 8601)
state string Administrative center of the address location
city object Localized city information
Successful Response (200 OK)
{
  "data": {
    "id": 5142,
    "address": "ჭავჭავაძის გამზირი 25",
    "city_id": 1,
    "type": "RECEIVER",
    "latitude": "41.7102985",
    "longitude": "44.7670951",
    "created_at": "2025-07-15T13:09:07.000000Z",
    "state": "თბილისი",
    "city": {
      "id": 1,
      "name": "თბილისი",
      "name_en": "Tbilisi",
      "name_ru": "Тбилиси"
    }
  }
}
Error Response
  • Status: 404 Not Found or 403 Forbidden
  • Content-Type: application/json
{
  "message": "Address not found."
}

Note: The address must belong to the authenticated user. If it does not exist or does not belong to the user, a 404 Not Found or 403 Forbidden error is returned.

PUT Update an Address

Use the PUT /api/addresses/{id} endpoint to update an existing address owned by the authenticated user. Updating is allowed only if the address is not linked to registered orders.

Request
  • URL: https://trackings.ge/api/addresses/{id}
  • Method: PUT
  • Authorization: Bearer YOUR_ACCESS_TOKEN
  • Content-Type: application/json
Path Parameter
Parameter Type Required Description
id integer Yes The ID of the address to be updated
Body Parameters (JSON)
Parameter Type Required Description
address string Yes Full address text (max: 255 characters)
type string Yes Address type: SENDER or RECEIVER
city_id integer Yes ID of the city (from your cities list)
Example Request Body
{
  "address": "რუსთაველის 15",
  "type": "SENDER",
  "city_id": 578
}
Example cURL
curl -X PUT "https://trackings.ge/api/addresses/1556" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "address": "რუსთაველის 15",
    "type": "SENDER",
    "city_id": 578
  }'
Successful Response (200 OK)
  • Status: 200 OK
  • Content-Type: application/json
{
  "data": {
    "id": 5142,
    "address": "რუსთაველის 15",
    "city_id": "578",
    "type": "SENDER",
    "latitude": 41.6460978,
    "longitude": 41.64049,
    "created_at": "2025-07-15T13:09:07.000000Z",
    "state": "ბათუმი",
    "city": {
      "id": 578,
      "name": "ბათუმი",
      "name_en": "Batumi",
      "name_ru": "Батуми"
    }
  }
}
Error Responses
Status Response Example Description
404 Not Found / 403 Forbidden { "message": "An error occurred", "error": "Address not found" } The address does not exist or does not belong to the user
400 Bad Request { "message": "An error occurred", "error": "You already have at least 1 order registered at this address. It cannot be changed. Add a new address" } The address is linked to an order and cannot be updated

Note: Use the /api/geo/cities or /api/geo/region/{region_id}/cities endpoints to get valid city_id values.

DELETE Delete an Address

The DELETE /api/addresses/{id} endpoint lets an authenticated user permanently remove an address from their account. Addresses linked to orders cannot be deleted. Always make sure to use a new address for future orders before deleting an old one.

Request
  • URL: https://trackings.ge/api/addresses/{id}
  • Method: DELETE
  • Authorization: Bearer YOUR_ACCESS_TOKEN
Path Parameter
Parameter Type Required Description
id integer Yes ID of the address to be deleted
Example cURL
curl -X DELETE "https://trackings.ge/api/addresses/214" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Successful Response (200 OK)
  • Status: 200 OK
  • Content-Type: application/json
{
  "message": "Address deleted successfully"
}
Error Responses
Status Response Example Description
404 Not Found { "message": "An error occurred", "error": "Address not found" } The address does not exist or does not belong to the user
400 Bad Request { "message": "An error occurred", "error": "You already have at least 1 order registered at this address. It cannot be delete" } The address has at least one linked order and cannot be deleted

Note: To delete an address linked to an order, you must first create and use a new address for future orders.

Orders

An Order in the Trackings.ge system represents a complete parcel shipment workflow between a sender and a receiver.

Creating an order connects addresses, pickup or drop-off (PUDO) points, delivery instructions, payment responsibilities, and additional preferences.

Each order has unique tracking and status updates to help both businesses and end-users manage parcel flows transparently.

Core Order Process

  • Pickup & Delivery:

    An order starts with defining how the parcel will be picked up (e.g., by courier or by dropping off at a PUDO) and how it will be delivered.

  • Sender & Receiver Info:

    Every order must include valid sender and receiver addresses or PUDO points.

  • Weight & Quantity:

    The system requires the parcel’s weight and item count to calculate delivery costs and ensure safe handling.

  • Payment:

    Who pays for delivery — the sender or the receiver — must be specified. Payment can be Cash on Delivery (COD) or prepaid by other methods

  • COD (Cash on Delivery):

    If COD is enabled, the courier collects payment from the receiver when delivering the parcel, and this amount is then transferred back to the sender.

  • Return Options:

    If delivery fails or the receiver rejects the parcel, the return policy defines what happens — return to sender, send to a service center, or cancel the return.

  • Insurance & Fragile Handling:

    Senders can mark a parcel as insured or fragile to add extra safety and accountability.

  • Tracking & Status:

    Once created, an order receives a unique tracking code. The sender, receiver, and system admins can follow its status at every stage — pickup, transit, delivery, or return.

This flexible and secure system ensures reliable delivery and clear responsibilities for every shipment.

GET Get Orders

The GET /api/orders endpoint lets an authenticated user retrieve a paginated list of their orders.

Each order includes complete shipment details: sender and receiver info, pickup and delivery method (courier or PUDO), status, tracking code, weight, payment, insurance, COD, billing breakdown, and return rules.

The response is paginated, with up to 100 orders per page, and includes helpful links and meta info for navigating between pages.

This endpoint is essential for businesses and customers to track all parcels, check delivery statuses, verify payment details, and handle returns — all in one unified JSON format.

Request
  • URL: https://trackings.ge/api/orders
  • Method: GET
  • Authentication: Bearer Token Required
  • Authorization: Bearer YOUR_ACCESS_TOKEN
  • Description: Returns a paginated list of orders that belong to the authenticated user. Each page includes up to 100 orders with detailed shipment, billing, and status information.
Example Request
curl -X GET "https://trackings.ge/api/orders" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Successful Response (200 OK)
  • Status: 200 OK
  • Content-Type: application/json
Fields
Field Type Nullable Description
order_id integer No Internal unique order ID
uuid string (UUID) No Globally unique identifier for the order
tracking_code string No System-generated tracking code
client_tracking_code string Yes Tracking code from client system (optional)
current_status string No Latest status code (e.g., CREATE, DELIVERED)
current_status_text string No Human-readable text for the current status
pickup_method string No How the package was picked up: COURIER or PUDO
country_code string Yes Sender's telephone country code
phone_number string No Sender or receiver phone number
address_id integer No Address ID
address string No Full address text
city_id integer No ID of the city
type string No Address type: SENDER or RECEIVER
latitude string No Latitude coordinate
longitude string No Longitude coordinate
created_at datetime No Timestamp when the address was created
state string No Administrative center of the address
city_id integer No City ID
name string No City name in Georgian
name_en string No City name in English
name_ru string No City name in Russian
delivery_method string No Delivery method: COURIER or PUDO
is_legal_entity boolean No Is the receiver a legal entity
gov_number string Yes Tax or gov ID if legal entity
organization_name string Yes Company name if legal entity
receiver_name string No Full name of the receiver
weight string No Shipment weight (kg)
items_quantity integer No Number of items in the order
insured boolean Yes Whether the order is insured
fragile boolean Yes Whether the items are fragile
to_have_picture boolean Yes Whether picture service is included
is_express boolean Yes Whether the delivery is express
comment string Yes Customer comment
payer string No Who pays for delivery: SENDER or RECEIVER
payment_method string No Payment method: CASH, CASHLESS
delivery_at datetime Yes When the order was delivered
sign_image string (URL) Yes Signature image URL
label string (URL) Yes Label PDF URL
delivery_fee float No Standard delivery fee
cod float Yes Cash on delivery amount
cod_fee float Yes COD service fee
cod_fee_payer string Yes Who pays the COD fee
photo_service_fee float Yes Photo service fee
insurance_fee float Yes Insurance fee
express_fee float Yes Express fee
sender_fee float No Total charged to sender
receiver_fee float No Total charged to receiver
return_fee float No Return fee
return_delivery_fee float No Return delivery fee
sender_paid_date datetime Yes Date sender paid
receiver_paid_date datetime Yes Date receiver paid
cod_transaction_date datetime Yes When COD was transferred
return_decision string No Return action: RETURN_TO_SENDER or SEND_TO_SERVICE_CENTER
statuses array No Array of status objects
{
    "data": [
        {
            "order_id": 4811,
            "uuid": "9f654aa5-2e4c-45f8-8f57-132b43064ea9",
            "tracking_code": "464792499854174",
            "client_tracking_code": null,
            "current_status": "CREATE",
            "current_status_text": "Awaiting Pickup",
            "sender": {
                "pickup_method": "COURIER",
                "country_code": null,
                "phone_number": "+19177227425",
                "address": {
                    "id": 5079,
                    "address": "საწყობის მისამართი",
                    "city_id": 1,
                    "type": "SENDER",
                    "latitude": "41.6751224",
                    "longitude": "44.9324938",
                    "created_at": "2025-07-15T10:05:26.000000Z",
                    "state": "თბილისი",
                    "city": {
                        "id": 1,
                        "name": "თბილისი",
                        "name_en": "Tbilisi",
                        "name_ru": "Тбилиси"
                    }
                },
                "pudo": null
            },
            "receiver": {
                "delivery_method": "COURIER",
                "is_legal_entity": false,
                "gov_number": null,
                "organization_name": null,
                "country_code": null,
                "phone_number": "+995577294643",
                "receiver_name": "სატესტო მყიდველი",
                "address": {
                    "id": 5080,
                    "address": "მიმღების მისამართი ჩექაუთიდან",
                    "city_id": 652,
                    "type": "RECEIVER",
                    "latitude": "41.8209469",
                    "longitude": "41.7751508",
                    "created_at": "2025-07-15T10:05:27.000000Z",
                    "state": "ქობულეთი",
                    "city": {
                        "id": 652,
                        "name": "ქობულეთი",
                        "name_en": "Kobuleti",
                        "name_ru": "Кобулети"
                    }
                },
                "pudo": null
            },
            "weight": "15.00",
            "items_quantity": 1,
            "insured": false,
            "fragile": false,
            "to_have_picture": false,
            "is_express": false,
            "comment": "Order #117",
            "payer": "SENDER",
            "payment_method": "CASHLESS",
            "created_at": "2025-07-15T10:05:28.000000Z",
            "delivery_at": null,
            "sign_image": null,
            "label": null,
            "billing": {
                "delivery_fee": 15,
                "cod": 0,
                "cod_fee": 0,
                "cod_fee_payer": "SENDER",
                "photo_service_fee": 0,
                "insurance_fee": 0,
                "express_fee": 0,
                "sender_fee": 15,
                "receiver_fee": 0,
                "return_fee": 0,
                "return_delivery_fee": 0,
                "sender_paid_date": null,
                "receiver_paid_date": null,
                "cod_transaction_date": null
            },
            "return": {
                "return_decision": "CANCELED",
                "label": null,
                "notes": null,
                "address": null,
                "pudo": null
            },
            "statuses": []
        }
    ],
    "links": {
        "first": "https://trackings.ge/api/orders?page=1",
        "last": "https://trackings.ge/api/orders?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "active": false
            },
            {
                "url": "https://trackings.ge/api/orders?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "active": false
            }
        ],
        "path": "https://trackings.ge/api/orders",
        "per_page": 100,
        "to": 1,
        "total": 1
    }
}

POST Create Order

The POST /api/orders endpoint allows an authenticated user to create a new delivery order in the system. This process registers all the necessary details for picking up and delivering a shipment from the sender to the receiver.

When you create an order, you must define how the shipment will be picked up. There are two options:

  • COURIER: A courier will collect the shipment directly from the sender's specified address.
  • PUDO (Pick-Up/Drop-Off): The sender will drop the shipment off at a designated PUDO point in the selected city.

The order creation process also includes other important details such as the receiver’s information, parcel weight, number of items, whether the parcel is insured or fragile, COD (cash on delivery) requirements, return instructions, and payment details.

Once created, each order is assigned a unique tracking code and can be tracked through its entire delivery lifecycle, including pickup, transit, delivery, and any returns or special handling instructions.

This process ensures the shipment is handled according to the selected pickup method, with accurate sender and receiver information, and with proper payment or COD instructions if needed.

Request
  • URL: https://trackings.ge/api/orders
  • Method: POST
  • Authentication: Bearer Token Required
  • Headers: Content-Type: application/json
  • Authorization: Bearer YOUR_ACCESS_TOKEN
Request Body
Pickup Information Parameters
Field Type Required Validation Description
pickup_method string Yes Allowed: COURIER, PUDO Defines how the package will be picked up.
sender_address_id integer Required if pickup_method = COURIER Must exist in addresses.id and belong to the authenticated user. Must be type SENDER. ID of the sender's address for courier pickup.
sender_pudo_city integer Required if pickup_method = PUDO Must exist in cities.id City where the sender will drop off the package at a PUDO point.
sender_pudo_id integer Required if pickup_method = PUDO Must exist in pudos.pudo_id ID of the PUDO drop-off point for the sender.
Delivery Information
Field Type Required Validation / Allowed Values Description
delivery_method string Yes COURIER, PUDO How the receiver will get the package.
receiver_address_id integer If delivery_method = COURIER Must exist in addresses.id and belong to user with type RECEIVER. Receiver's address ID.
receiver_pudo_city integer If delivery_method = PUDO Must exist in cities.id City for PUDO delivery to receiver.
receiver_pudo_id integer If delivery_method = PUDO Must exist in pudos.pudo_id ID of the receiver's PUDO point.
Sender/Receiver Details
Field Type Required Description
is_individual_person boolean Yes Indicates if the sender is an individual.
sender_phone_extension string Optional Optional phone extension for sender.
sender_phone_number string Yes Sender's phone number.
receiver_phone_extension string Optional Optional phone extension for receiver.
receiver_phone_number string Yes Receiver's phone number.
receiver_name string Yes Name of the receiver.
gov_number string If is_individual_person = true Government number for individual receiver.
organization_name string If is_individual_person = true Name of the organization (if applicable).
Parcel Info
Field Type Required Validation Description
weight float Yes numeric, min:0.1 Total package weight in kilograms.
items_quantity integer Yes numeric, min:1 Number of items in the package.
client_tracking_code string Optional - User-defined tracking code for internal reference.
Payment and COD
Field Type Required Validation / Allowed Values Description
cod boolean Optional boolean Cash on delivery option.
cod_amount float If cod = true numeric, min:1 COD amount to be collected.
payer string Yes SENDER, RECEIVER Who will pay for the delivery.
payment_type string Yes CASH, CASHLESS Payment method.
is_express boolean Optional Only for legal entities Whether the delivery is express.
Additional Options
Field Type Required Description
fragile boolean Optional Mark if the item is fragile.
to_have_picture boolean Optional If the item needs to be photographed.
insured boolean Optional Indicates insurance is applied.
description string Optional Description of the package.
Return Info
Field Type Required Validation / Allowed Values Description
return_decision string If legal entity RETURN_TO_SENDER, SEND_TO_SERVICE_CENTER, CANCELED What to do if delivery fails (for legal entities only).
return_pudo_id integer If return_decision = SEND_TO_SERVICE_CENTER Must exist in pudos.id Return to which PUDO if service center return is chosen.
Example JSON Payload
{
  "pickup_method": "PUDO",
  "sender_pudo_city": 1,
  "sender_pudo_id": 9,
  "delivery_method": "COURIER",
  "receiver_address_id": 5150,
  "is_individual_person": 0,
  "sender_phone_number": "55700000",
  "receiver_phone_number": "557000000",
  "receiver_name": "John Doe",
  "weight": 2.5,
  "items_quantity": 1,
  "cod":true,
  "cod_amount": 70,
  "payer": "SENDER",
  "payment_type": "CASH",
  "return_decision": "SEND_TO_SERVICE_CENTER",
  "return_pudo_id": 9
}
Example cURL Request
curl -X POST "https://trackings.ge/api/orders" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
  "pickup_method": "PUDO",
  "sender_pudo_city": 1,
  "sender_pudo_id": 9,
  "delivery_method": "COURIER",
  "receiver_address_id": 5150,
  "is_individual_person": 0,
  "sender_phone_number": "55700000",
  "receiver_phone_number": "557000000",
  "receiver_name": "John Doe",
  "weight": 2.5,
  "items_quantity": 1,
  "cod":true,
  "cod_amount": 70,
  "payer": "SENDER",
  "payment_type": "CASH",
  "return_decision": "SEND_TO_SERVICE_CENTER",
  "return_pudo_id": 9
}'
Successful Response (200 OK)
{
    "success": true,
    "message": "Order #980180478760592 created successfully",
    "order": {
        "order_id": 4888,
        "uuid": "9f65c50f-71d3-4187-b774-ede2c50700c5",
        "tracking_code": "980180478760592",
        "client_tracking_code": null,
        "current_status": "CREATE",
        "current_status_text": "Awaiting Pickup",
        "sender": {
            "pickup_method": "PUDO",
            "country_code": null,
            "phone_number": "55700000",
            "address": null,
            "pudo": {
                "id": 9,
                "city_id": 1,
                "name_ka": "გლდანი, 4-ე მიკრო რაიონი, კორპუსი 92ა, შენობა 5.",
                "city_name": "თბილისი",
                "latitude": "41.79841113091622",
                "longitude": "44.81899422384513",
                "city": {
                    "id": 1,
                    "name": "თბილისი",
                    "name_en": "Tbilisi",
                    "name_ru": "Тбилиси"
                }
            }
        },
        "receiver": {
            "delivery_method": "COURIER",
            "is_legal_entity": false,
            "gov_number": null,
            "organization_name": null,
            "country_code": null,
            "phone_number": "557000000",
            "receiver_name": "John Doe",
            "address": {
                "id": 5150,
                "address": "გურამიშვილის გამზირი 15",
                "city_id": 1,
                "type": "RECEIVER",
                "latitude": "41.7562173",
                "longitude": "44.7899982",
                "created_at": "2025-07-15T15:44:26.000000Z",
                "state": "თბილისი",
                "city": {
                    "id": 1,
                    "name": "თბილისი",
                    "name_en": "Tbilisi",
                    "name_ru": "Тбилиси"
                }
            },
            "pudo": null
        },
        "weight": 2.5,
        "items_quantity": 1,
        "insured": false,
        "fragile": false,
        "to_have_picture": false,
        "is_express": false,
        "comment": null,
        "payer": "SENDER",
        "payment_method": "CASH",
        "created_at": "2025-07-15T15:47:46.000000Z",
        "delivery_at": null,
        "sign_image": null,
        "label": null,
        "billing": {
            "delivery_fee": 5,
            "cod": 70,
            "cod_fee": 1.4,
            "cod_fee_payer": "SENDER",
            "photo_service_fee": 0,
            "insurance_fee": 0,
            "express_fee": 0,
            "sender_fee": 6.4,
            "receiver_fee": 70,
            "return_fee": 0.75,
            "return_delivery_fee": 5,
            "sender_paid_date": null,
            "receiver_paid_date": null,
            "cod_transaction_date": null
        },
        "return": {
            "return_decision": "SEND_TO_SERVICE_CENTER",
            "label": null,
            "notes": null,
            "address": null,
            "pudo": {
                "id": 9,
                "city_id": 1,
                "name_ka": "გლდანი, 4-ე მიკრო რაიონი, კორპუსი 92ა, შენობა 5.",
                "city_name": "თბილისი",
                "latitude": "41.79841113091622",
                "longitude": "44.81899422384513",
                "city": {
                    "id": 1,
                    "name": "თბილისი",
                    "name_en": "Tbilisi",
                    "name_ru": "Тбилиси"
                }
            }
        },
        "statuses": []
    }
}

PUT Update Order

The PUT /api/orders/{order_id} endpoint allows an authenticated user to update an existing order in the system. This operation is used when you need to correct or change information about an order that has been created but not yet processed by the courier.

Only orders that are in the "CREATE" status can be updated. If the order has moved to any other status (for example: picked up, in transit, delivered, or cancelled), the system will reject the update request and return an error response. This ensures that no critical delivery or payment data is modified once the shipping process has started.

To update an order, you must include the order ID in the URL path parameter ({order_id}). The order ID must be valid, must exist in the system, and must belong to the authenticated user sending the request.

The request body must contain the same fields and structure used to create an order with POST /api/orders. This means you can update pickup details, delivery details, parcel information, sender and receiver contacts, payment options, and any optional instructions like fragile handling, insurance, return instructions, or whether a picture or handover document is required.

Any fields that are left unchanged in the request body will overwrite the existing order record with the same values. For this reason, always make sure to include all necessary fields — even those that do not change — to avoid accidentally overwriting them with null or default values.

This update operation is useful when a sender notices incorrect address information, a wrong phone number, or wants to adjust delivery preferences before the parcel is handed over to the courier.

A valid Bearer Token must be included in the request header for authentication and authorization. The Content-Type must be application/json. If the update is successful, the API will respond with the updated order details in the same structure as the POST response.

Important: If the order is linked to any follow-up actions (such as payment collection, COD transaction, or return process) or if it is no longer in the create state, it cannot be updated — you will need to cancel it (if allowed) and create a new order instead.

Request
  • URL: https://trackings.ge/api/orders/{order_id}
  • Method: PUT
  • Authentication: Bearer Token Required
  • Headers: Content-Type: application/json
  • Authorization: Bearer YOUR_ACCESS_TOKEN
  • {order_id} must be a valid existing order ID.
  • The order must belong to the authenticated user.
  • The current order status must be "CREATE". If the order is in any other status, the update will be rejected with an appropriate error message.
  • The request body structure and validation rules are the same as for the POST /api/orders endpoint.
Body Parameters (Same as POST /api/orders)
Field Type Required Description
pickup_method string yes Defines how the package will be picked up. Possible values: COURIER, PUDO.
sender_address_id integer if pickup_method = COURIER ID of sender's saved address. Must exist in addresses and belong to the user.
sender_pudo_city integer if pickup_method = PUDO ID of the city for sender's PUDO drop-off.
sender_pudo_id integer if pickup_method = PUDO ID of the sender’s PUDO point.
delivery_method string yes How the receiver will get the package. Possible values: COURIER, PUDO.
receiver_address_id integer if delivery_method = COURIER ID of receiver's address. Must exist and belong to the user with type RECEIVER.
receiver_pudo_city integer if delivery_method = PUDO City ID for receiver’s PUDO delivery.
receiver_pudo_id integer if delivery_method = PUDO ID of the receiver’s PUDO point.
is_individual_person boolean yes Indicates if the sender is an individual person.
sender_phone_number string yes Sender's phone number.
receiver_phone_number string yes Receiver's phone number.
receiver_name string yes Name of the receiver.
weight float yes Weight of the parcel in kilograms.
items_quantity integer yes Number of items in the parcel.
payment_by string yes Who pays for the delivery. Possible values: SENDER, RECEIVER.
payment_type string yes Payment method. Possible values: CASH, CASHLESS.

Note: The full list of fields matches the POST /api/orders structure, so reuse all applicable fields when performing an update.

Example JSON Payload
{
  "pickup_method": "COURIER",
  "sender_address_id": 4090,
  "delivery_method": "COURIER",
  "receiver_address_id": 5150,
  "is_individual_person": 0,
  "sender_phone_number": "55700000",
  "receiver_phone_number": "557000000",
  "receiver_name": "John Doe",
  "weight": 2.5,
  "items_quantity": 1,
  "cod":true,
  "cod_amount": 70,
  "payer": "SENDER",
  "payment_type": "CASH",
  "return_decision": "SEND_TO_SERVICE_CENTER",
  "return_pudo_id": 9
}
Example cURL Request
curl -X PUT "https://trackings.ge/api/orders/4888" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
  "pickup_method": "COURIER",
  "sender_address_id": 4090,
  "delivery_method": "COURIER",
  "receiver_address_id": 5150,
  "is_individual_person": 0,
  "sender_phone_number": "55700000",
  "receiver_phone_number": "557000000",
  "receiver_name": "John Doe",
  "weight": 2.5,
  "items_quantity": 1,
  "cod":true,
  "cod_amount": 70,
  "payer": "SENDER",
  "payment_type": "CASH",
  "return_decision": "SEND_TO_SERVICE_CENTER",
  "return_pudo_id": 9
}'
Successful Response (200 OK)
{
    "success": true,
    "message": "Order #980180478760592 updated successfully",
    "order": {
        "order_id": 4888,
        "uuid": "9f65c50f-71d3-4187-b774-ede2c50700c5",
        "tracking_code": "980180478760592",
        "client_tracking_code": null,
        "current_status": "CREATE",
        "current_status_text": "Awaiting Pickup",
        "sender": {
            "pickup_method": "COURIER",
            "country_code": null,
            "phone_number": "55700000",
            "address": {
                "id": 4090,
                "address": "პეკინის გამზირი 5.",
                "city_id": 1,
                "type": "SENDER",
                "latitude": "41.7211724",
                "longitude": "44.7756078",
                "created_at": "2025-07-10T09:27:10.000000Z",
                "state": "თბილისი",
                "city": {
                    "id": 1,
                    "name": "თბილისი",
                    "name_en": "Tbilisi",
                    "name_ru": "Тбилиси"
                }
            },
            "pudo": null
        },
        "receiver": {
            "delivery_method": "COURIER",
            "is_legal_entity": false,
            "gov_number": null,
            "organization_name": null,
            "country_code": null,
            "phone_number": "557000000",
            "receiver_name": "John Doe",
            "address": {
                "id": 5150,
                "address": "გურამიშვილის გამზირი 15",
                "city_id": 1,
                "type": "RECEIVER",
                "latitude": "41.7562173",
                "longitude": "44.7899982",
                "created_at": "2025-07-15T15:44:26.000000Z",
                "state": "თბილისი",
                "city": {
                    "id": 1,
                    "name": "თბილისი",
                    "name_en": "Tbilisi",
                    "name_ru": "Тбилиси"
                }
            },
            "pudo": null
        },
        "weight": 2.5,
        "items_quantity": 1,
        "insured": false,
        "fragile": false,
        "to_have_picture": false,
        "is_express": false,
        "comment": null,
        "payer": "SENDER",
        "payment_method": "CASH",
        "created_at": "2025-07-15T15:47:46.000000Z",
        "delivery_at": null,
        "sign_image": null,
        "label": null,
        "billing": {
            "delivery_fee": 5.5,
            "cod": 70,
            "cod_fee": 1.4,
            "cod_fee_payer": "SENDER",
            "photo_service_fee": 0,
            "insurance_fee": 0,
            "express_fee": 0,
            "sender_fee": 6.9,
            "receiver_fee": 70,
            "return_fee": 0.83,
            "return_delivery_fee": 5.5,
            "sender_paid_date": null,
            "receiver_paid_date": null,
            "cod_transaction_date": null
        },
        "return": {
            "return_decision": "SEND_TO_SERVICE_CENTER",
            "label": null,
            "notes": null,
            "address": null,
            "pudo": {
                "id": 9,
                "city_id": 1,
                "name_ka": "გლდანი, 4-ე მიკრო რაიონი, კორპუსი 92ა, შენობა 5.",
                "city_name": "თბილისი",
                "latitude": "41.79841113091622",
                "longitude": "44.81899422384513",
                "city": {
                    "id": 1,
                    "name": "თბილისი",
                    "name_en": "Tbilisi",
                    "name_ru": "Тбилиси"
                }
            }
        },
        "statuses": []
    }
}

GET Retrieve Individual Order

This endpoint retrieves a specific order that belongs to the authenticated user. You can use different types of identifiers to fetch the order information:

  • order_id — The internal numeric ID of the order (e.g. 1197).
  • uuid — The globally unique UUID of the order (e.g. 9f1f4671-7c2e-437f-85f4-bae8e095948f).
  • tracking_code — The system-generated tracking code for the order (e.g. 170790005552128).
  • client_tracking_code — An optional tracking code you provided when creating the order, for your internal reference.

The request must include a valid Bearer Token in the header for authentication:

Authorization: Bearer YOUR_ACCESS_TOKEN

If the order exists and belongs to the authenticated user, the API returns the full order details in JSON format, including pickup and delivery information, parcel details, sender/receiver contacts, billing, status history, and return instructions.

If the identifier does not match any order, or the order does not belong to the user, the API returns an error response.

Path Parameter
Parameter Type Required Description
{identifier} string or integer Yes The unique identifier for the order you want to retrieve.
Accepts order_id (numeric), uuid (string), tracking_code (string), or client_tracking_code (string).

Use this endpoint to track the status of an order, check delivery or billing details, or confirm the current location or history of an active shipment.

Successful Response (200 OK)
{
    "data": {
        "order_id": 4888,
        "uuid": "9f65c50f-71d3-4187-b774-ede2c50700c5",
        "tracking_code": "980180478760592",
        "client_tracking_code": null,
        "current_status": "CREATE",
        "current_status_text": "Awaiting Pickup",
        "sender": {
            "pickup_method": "COURIER",
            "country_code": null,
            "phone_number": "55700000",
            "address": {
                "id": 4090,
                "address": "პეკინის გამზირი 5.",
                "city_id": 1,
                "type": "SENDER",
                "latitude": "41.7211724",
                "longitude": "44.7756078",
                "created_at": "2025-07-10T09:27:10.000000Z",
                "state": "თბილისი",
                "city": {
                    "id": 1,
                    "name": "თბილისი",
                    "name_en": "Tbilisi",
                    "name_ru": "Тбилиси"
                }
            },
            "pudo": null
        },
        "receiver": {
            "delivery_method": "COURIER",
            "is_legal_entity": false,
            "gov_number": null,
            "organization_name": null,
            "country_code": null,
            "phone_number": "557000000",
            "receiver_name": "John Doe",
            "address": {
                "id": 5150,
                "address": "გურამიშვილის გამზირი 15",
                "city_id": 1,
                "type": "RECEIVER",
                "latitude": "41.7562173",
                "longitude": "44.7899982",
                "created_at": "2025-07-15T15:44:26.000000Z",
                "state": "თბილისი",
                "city": {
                    "id": 1,
                    "name": "თბილისი",
                    "name_en": "Tbilisi",
                    "name_ru": "Тбилиси"
                }
            },
            "pudo": null
        },
        "weight": "2.50",
        "items_quantity": 1,
        "insured": false,
        "fragile": false,
        "to_have_picture": false,
        "is_express": false,
        "comment": null,
        "payer": "SENDER",
        "payment_method": "CASH",
        "created_at": "2025-07-15T15:47:46.000000Z",
        "delivery_at": null,
        "sign_image": null,
        "label": null,
        "billing": {
            "delivery_fee": 5.5,
            "cod": 70,
            "cod_fee": 1.4,
            "cod_fee_payer": "SENDER",
            "photo_service_fee": 0,
            "insurance_fee": 0,
            "express_fee": 0,
            "sender_fee": 6.9,
            "receiver_fee": 70,
            "return_fee": 0.83,
            "return_delivery_fee": 5.5,
            "sender_paid_date": null,
            "receiver_paid_date": null,
            "cod_transaction_date": null
        },
        "return": {
            "return_decision": "SEND_TO_SERVICE_CENTER",
            "label": null,
            "notes": null,
            "address": null,
            "pudo": {
                "id": 9,
                "city_id": 1,
                "name_ka": "გლდანი, 4-ე მიკრო რაიონი, კორპუსი 92ა, შენობა 5.",
                "city_name": "თბილისი",
                "latitude": "41.79841113091622",
                "longitude": "44.81899422384513",
                "city": {
                    "id": 1,
                    "name": "თბილისი",
                    "name_en": "Tbilisi",
                    "name_ru": "Тбилиси"
                }
            }
        },
        "statuses": []
    }
}

DELETE Delete an Order

This endpoint permanently deletes an existing order from the system. Deleting an order is only possible if:

  • The {order_id} exists in the system.
  • The order belongs to the authenticated user making the request.
  • The current status of the order is CREATE. Orders that have moved beyond this status (e.g., PROCESSING, PICKED_UP, DELIVERED) cannot be deleted and will return an error.

This is useful if you need to cancel an order that was created by mistake or needs to be replaced before it has been processed by the courier.

The request must include a valid Bearer Token for authentication:

Authorization: Bearer YOUR_ACCESS_TOKEN
Accept: application/json

Endpoint: DELETE https://trackings.ge/api/orders/{order_id}

Path Parameter
Parameter Type Required Description
{order_id} integer Yes The unique numeric ID of the order to be deleted.
Successful Response (200 OK)
{
  "order": "Order deleted successfully"
}
Error Response
Status: 404 Not Found

{
  "message": "An error occurred",
  "error": "Order not found"
}

OR

Status: 400 Bad Request

{
  "message": "An error occurred",
  "error": "Order cannot be deleted due to its current status"
}

Always verify that the order status is still CREATE before calling this endpoint to ensure the delete operation will succeed.

Pricing and Delivery Cost Calculation

The pricing system for our delivery services is designed to give you a clear and predictable cost estimate before you place an order. The price calculator works by taking key shipment details and using them to determine the total delivery fee and any additional service charges.

When you create or estimate an order, our system automatically calculates the price based on the following factors:

  • Pickup and Delivery Locations: The distance between the sender's pickup address or PUDO point and the receiver's address or PUDO point. Prices can vary depending on whether the delivery is local, regional, or long-distance.
  • Weight and Size: The weight of the parcel (in kilograms) is required and directly affects the base delivery cost. Heavier shipments may incur higher fees.
  • Cash on Delivery (COD): If you enable COD, a small additional COD service fee may apply. This covers the processing and safe handling of cash collected from the receiver.
  • Insurance: If you choose to insure your parcel, an insurance fee will be added to the total. This protects your shipment against loss or damage.
  • Express Service: If you select the express option (available for legal entities and selected routes), an express surcharge is applied for faster delivery times.
  • Additional Services: Services like fragile item handling, taking a delivery photo, or using a handover document can also add small extra fees to the total price.
  • Who Pays: You can decide whether the sender or the receiver pays the delivery cost. The system calculates fees and allocates them accordingly in the billing breakdown.

The final delivery fee you see includes all applicable charges: base delivery cost, additional service fees, insurance (if selected), COD fees (if enabled), and taxes (if applicable).

Our pricing calculator is fully integrated into the order creation process. Whenever you fill in an order request, the system instantly applies the latest rates and calculates the exact amount you or your receiver will pay.

This ensures that you have complete transparency about your shipping costs before confirming the order.

For more complex or bulk shipments, our system supports quoting multiple packages at once, so you can plan and manage costs efficiently.

To get an accurate price, always make sure the address, city, weight, and service options you provide are correct and up to date.

GET Pricing API

This endpoint calculates the estimated price for delivering a parcel based on the shipment details provided. You must send a valid Bearer Token in the header to authenticate the request.

Request
  • URL: https://trackings.ge/api/get-price
  • Method: GET
  • Authentication Required: Yes
  • Header: Authorization: Bearer YOUR_ACCESS_TOKEN
Request Parameters
Parameter Type Required Description
weight float Yes Parcel weight in kilograms. Must be greater than 0 and maximum 1000.
cod_amount float No Amount to be collected from the receiver. If not using COD, leave empty.
to_have_picture boolean No Whether the parcel requires photo proof of delivery (1 = yes, 0 = no).
is_express boolean No Whether express delivery is needed (1 = yes, 0 = no).
insured boolean No Whether the parcel is insured (1 = yes, 0 = no).
pickup_method string Yes Defines how the parcel is picked up. Must be COURIER or PUDO.
delivery_method string Yes Defines how the parcel is delivered. Must be COURIER or PUDO.
sender_city_id integer Yes ID of the sender's city.
receiver_city_id integer Yes ID of the receiver's city.
items_quantity integer No Number of items in the parcel. Must be at least 1 if provided.
return_decision string No Defines return logic. One of RETURN_TO_SENDER, SEND_TO_SERVICE_CENTER, CANCELED.
return_pudo_id integer Conditionally Required only if return_decision is SEND_TO_SERVICE_CENTER. ID of the PUDO point to return to.
payer string No Who pays the delivery fee — either SENDER or RECEIVER.
Example cURL Request
curl -X GET "https://trackings.ge/api/get-price?weight=2.5&pickup_method=COURIER&delivery_method=PUDO&sender_city_id=1&receiver_city_id=25&cod_amount=150&is_express=1&return_decision=SEND_TO_SERVICE_CENTER&return_pudo_id=9&payer=SENDER" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
Successful Response (200 OK)
{
    "data": {
        "delivery_fee": "6.50",
        "cod_fee": "3.00",
        "cod": "150.00",
        "photo_service_fee": "0.00",
        "handover_service_fee": "0.00",
        "insurance_fee": "0.00",
        "sender_fee": "9.50",
        "receiver_fee": "150.00",
        "express_fee": "0.00",
        "return_fee": "0.98",
        "return_delivery_fee": "6.50"
    }
}
Response Parameters
Field Description
delivery_fee Standard delivery cost.
cod_fee Cash on delivery processing fee.
cod The COD amount that will be collected.
photo_service_fee Extra cost if a delivery photo is required.
handover_service_fee Fee for signature/handover proof (if used).
insurance_fee Fee for insuring the parcel.
sender_fee Amount sender will pay (based on payer).
receiver_fee Amount receiver will pay (based on payer).
express_fee Extra fee if express service is enabled.
return_fee Return label/service fee.
return_delivery_fee Return shipping cost.

Invoices

Invoices are generated automatically by the system at the end of each calendar month. Each invoice summarizes all shipping and delivery activities that took place during that month and provides a detailed breakdown of the expenses incurred by the customer.

The monthly invoice includes all relevant charges, such as standard delivery fees, cash on delivery (COD) processing fees, insurance fees, express delivery surcharges, photo service fees, and any other applicable service costs. This ensures that customers have full visibility into every cost item related to their shipments.

To make record-keeping and accounting easier, the system generates the invoice in both PDF and Excel formats. The PDF version provides a formal, ready-to-print document that is suitable for official accounting or sharing with financial departments. The Excel version contains the same information in a structured, editable spreadsheet, which is useful for internal financial analysis, custom reporting, or integration with accounting systems.

Each invoice clearly lists:

  • All individual orders processed during the month
  • Detailed line items for each cost component
  • Total amounts due, separated by sender-paid and receiver-paid charges
  • Applicable taxes, if any
  • Payment terms and due date

Customers can download their invoices directly from their account dashboard at any time after generation. This ensures transparency and provides an auditable trail of all monthly transactions, helping businesses manage and reconcile their logistics expenses efficiently.

Request
  • URL: https://trackings.ge/api/invoices
  • Method: GET
  • Authentication Required: Yes
  • Header: Authorization: Bearer YOUR_ACCESS_TOKEN
Successful Response (200 OK)
{
   "data":[
      {
         "month":"2025-06",
         "excel":"https://....xlsx",
         "pdf":"https://....pdf",
         "amount":"19.00",
         "status":"paid",
         "issued_at":"2025-06-03 10:05:58",
         "paid_at":"2025-06-10 11:07:42"
      },
      {
         "month":"2025-05",
         "excel":"https://....xlsx",
         "pdf":"https://....pdf",
         "amount":"66.84",
         "status":"pending",
         "issued_at":"2025-05-03 10:05:59",
         "paid_at":null
      }
   ]
}
Response Parameters
Field Type Description
month string Month for which the invoice was generated, formatted as YYYY-MM.
excel string (URL) Download link to the invoice file in Excel format.
pdf string (URL) Download link to the invoice file in PDF format.
amount string Total amount of the invoice in GEL.
status string Invoice status. Either paid or pending.
issued_at string (datetime) Date and time when the invoice was issued.
paid_at string (datetime) or null Date and time when the invoice was paid. null if still pending.
Trackings.ge

საკურიერო სერვისი მთელი საქართველოს მასშტაბით - სწრაფად და უსაფრთხოდ

სერვისები

  • სერვისები
  • ექსპრეს სერვისი
  • დაზღვევა
  • ფულფილმენტის სერვისი
  • COD გადახდა კურიერთან
  • ონლაინ მაღაზიებისთვის
  • დეველოპერების პორტალი

ჩვენ შესახებ

  • ჩვენ შესახებ
  • ფასები
  • გაცემის პუნქტები
  • ხშირად დასმული კითხვები
  • წესები და პირობები
  • კონფიდენციალობის პოლიტიკა

საკონტაქტო ინფო

  • მოგვწერეთ
  • +995322112007
  • info@trackings.ge

© 2025 ყველა უფლება დაცულია