https://app.couriermanager.eu/cscourier/API/<operation>
application/x-www-form-urlencoded — the same encoding browsers use for HTML forms. Do not send JSON request bodies. Both GET and POST are accepted. Most operations require an api_key parameter (or api_key HTTP header).
GET — parameters in the query string:
https://app.couriermanager.eu/cscourier/API/get_status?api_key=YOUR_KEY&awbno=1234567890
POST — parameters in the form body (Content-Type: application/x-www-form-urlencoded):
curl -X POST https://app.couriermanager.eu/cscourier/API/get_status \
-d "api_key=YOUR_KEY" \
-d "awbno=1234567890"
Response format
Standard response is a JSON object with the following fields:
status - done | failed
data - actual response, depending on the operation
error - if status is failed, an error code. not present otherwise.
message - human readable comment, for both success and failure.
The API can be tested using the following address: https://app.couriermanager.eu/cscourier/test_api.html
Parameters: - awbno - service: service id (see list_services?type=extra) Adds an extra service to a shipment. Notes: - Readonly services (is_readonly=1) cannot be set with a client API key - Client API keys can only add services when AWB is in draft (initial) status - After franchisor processing, the AWB moves to uncollected status and services cannot be added by clients
Parameters:
- awbno
Cancels the shipment (sets status to cancelled/anulat).
Permissions:
- Requires 'cancel' permission on awbs, OR
- Requires 'cancel_uncollected' permission on awbs (only for AWBs in uncollected/neridicat status)
Returns "ok" or {status:done} on success, "forbidden" if permission denied.
Parameters: - awbno - status: uncollected (neridicat), in_transit (in_curs), delivered (livrat), returned (returnat), cancelled (anulat) Changes the status of a shipment. Status flow: draft (initial) -> uncollected (neridicat) -> in_transit (in_curs) -> delivered/returned/cancelled AWB must be in draft, uncollected, or in_transit status to change. Permissions: - Client keys: can set uncollected, cancelled (requires cancel or cancel_uncollected permission) - Client keys: can set in_transit only with client_can_set_status_active permission - Courier keys: can set delivered, returned, cancelled
Create a fulfillment order. Parameters:
Parameters: - awbno - number of the original shipment to return - type: address_pickup | dropoff_location | dropoff_any - from_address, from_city, from_county, from_zipcode, from_country - (optional pickup address; if missing and type is address_pickup, the original shipment destination address will be used) - from_delivery_location - a delivery location id, as returned by list_delivery_locations Where type: address_pickup means the courier will pick up the return parcel from an address; dropoff_point means the package will be dropped off at a particular location (locker, office, pudo) dropoff_any means the package will be dropped off at any office. Creates a late return shipment for that shipment number.
The following fields can be added: "type", "service_type", "retur", "retur_type", "ramburs", "ramburs_type", "insurance", "weight", "content", "comments", "cnt", "content", "customer_reference", "fragile", "width", "height", "length", from_name, from_contact, from_str, from_nr, from_bl, from_sc, from_et, from_ap, from_interfon, from_sector, from_city, from_county, from_zipcode, from_country, from_phone, from_email, to_name, to_contact", to_str, to_nr, to_bl, to_sc, to_et, to_ap, to_interfon, to_sector, to_city, to_county, to_country, to_zipcode, to_phone, to_email, to_extra, to_cui, to_regcom type: envelope | package service_type: obtain from courier company (eg: regular, express). you can also use the list_services API mentioned below, with type=main retur: 0 | 1 - Package swap cnt: number of parcels/envelopes retur_type: colet | document ramburs: <CoD amount> ramburs_type: cont | cash | instrumente_plata - CoD type, with values meaning account, cash or check. weight: <weight in kg> length,height,width: sizes in cm insurance: insured value payer: who is paying the cost of transport for this shipment. Allowed values are: - client (default value), if the payment will be made by the contracted client, usually on a monthly invoice - sender|expeditor, if the payment is made in cash by the sender - recipient | destinatar, if the payment is made in cash by the recipient. from_... fields are used for the sender address, to_... fields for the recipient address ...name: name, company name if applicable ...contact: contact within company ...address: street address ...city: city ...county: province ...country: country ...phone: phone number ...zipcode: zipcode to_extra: any extra information regarding recipient address use_default_from_address: if "true", it will use the default expedition address in the system instead of the fields above. to_delivery_location: the id of the delivery location, as sent by the list_delivery_locations API from_type: injection | dropoff | last_mile | <empty>. If missing, general settings will be used. Can be used to specify exceptions - for example if most shipments are injected, it can be set to "last_mile" to signal that a courier should go pick it up. There are no mandatory fields except api_key, but you should be aware that expeditions lacking relevant information most likely can't be delivered. Expeditions with the "cnt" set to values over 1 will be automatically converted to groups. You will receive in the response the number of the first package in the group (like "XXX"), and the rest are created as such: 1st package: XXX 2nd package: XXX/2 3rd package: XXX/3 And so on. When creating a group (with cnt>1), you can optionally add weight and size fields for each parcel in the group, by adding fields as such: weight, length, height, width - for the first parcel weight2, length2, height2, width2 - for the second parcel weight3, length3, height3, width3 - for the third parcel And so on. pickup_requested: if true, the courier will pick up the parcel from the sender's address; if false, the courier will not pickup the parcel. If absent, the default setting will apply. Any number of extra services (like "Delivery Saturday") can be specified, each by adding a parameter like service_<service id> with the value true. For example if Delivery Saturday has the id 57, you would have: service_57=true Do not use "1" as synonym for "true" - it is a common cause of problems. The full list of services can be obtained through the API using the URL: API/list_services?api_key=<api key>&type=[main|extra] Return value The data field contains a map with the created expedition. Expedition number is in the "no" field. The status for the created expedition will be uncollected by default (neridicat for Romanian accounts). It can be changed from the Settings menu (Initial_api_status). awb_event_handler is an optional webhook. If present, it will receive notifications on status and code changes. Fields in the json: no - awb number franchisor_no - franchisor number customer_reference - customer reference, as given when the shipment was created type - type of event, currently 'status' or 'code' status - shipment code status code - shipment code code_name - shipment code name If more information is desired, you may make a get_history call for the same shipment upon receiving a webhook event. Events are being sent asynchronously, with a delay of max 60s. Notifications can be sent either as GET or POST requests, by prefixing the URL with [GET] or [POST]. (eg: [POST]https://example.com/webhook) For GET, the json is encoded and sent in the "content" field. For POST, the json is sent as the request body. If no prefix is used, the default is GET.
Parameters: - awbno - service: service id (see list_services) Deletes an extra service from a shipment.
Parameters: - from_date - to_date - detailed: true| false - withPrice, withPriceDetailed: true|false (only when detailed is set to false) Downloads an excel of shipments.
Parameters (v1):
- awbno
- full: true|false (optional)
Parameters (v2): JSON map in post body, with fields:
- numbers: list of shipment numbers
- full: true|false (optional)
V2 API returns a map of responses for each queried numbers: { "no" : <v1 response>, ...}
V1 API returns a json map with the fields "no", "status" and "history", where history is a list of status changes with the fields: date (unixtime), status and description.
If the parameter full is true and the api key is not a client api key (i.e. is a courier api key), it will add extra raw information from the database - both extra rows and extra fields.
The field event_type can have the following values:
ShipmentCreated
StatusChanged:<status>
CodeChanged:<code>
FranchisorEvent
SortingGate
Transit
NewHub
ScannedHub
OutForDelivery
PickupCourierAllocated
reweight
resize
The recommended flow is to use this together with webhooks for real time updates.
When creating the shipment add a webhook url in the field 'awb_event_handler'. When receiving a notification, you can also make a get_history call for the same shipment to get full information.
Parameters:
- awbno
- include_pictures: true|false (optional, default false) - if true, includes all AWB pictures as base64-encoded data
Returns a JSON map consisting of:
text fields with expedition info ("id", "no", "status", "from_address", "to_address", "from_city", "to_city", "from_country", "to_country", "ramburs", "ramburs_type")
"invoice", which contains a map with invoice info (date as unixtime, series, no, value - invoice value without VAT)
"decont_client", which contains a map with client settlement info: date as unixtime, transaction_no, value
"pictures" (only when include_pictures=true), a list of maps each containing: id, type, code, extension, date (unixtime), base64 (base64-encoded file content)
Parameters:
- awbno: shipment number
Returns all internal notes for a shipment, ordered by date ascending.
Employee-only — not available to client API keys.
Response data:
- notes: array of {id, note, date, date_formatted, user, username}
- awb_no: the shipment number
Parameters: - awbno - type: picture|signature (optional) - base64: true|false (optional) Returns a JSON map consisting of: type is optional and defaults to "picture". If there is a document of that type, it will download it. If there are several documents of the same type it will download only the most recent one. Extension of downloaded documents may vary - currently we have jpg and pdf in use. If base64 is true, it will return a json containing the base64 encoded file. Note: this dowloads individual images attached to the shipment. To get the full pdf Proof of Delivery form, use print_pod.
Takes the same parameters as API_createAWB, and returns a map with fields "price" and "zone"
Parameters: - from_date: REQUIRED (format: dd-MM-yyyy) - to_date: optional (format: dd-MM-yyyy) - dateType: optional, which date field to filter on. Values: from_day (default), to_time, pickup_date, to_hub_time, invoice_date, status_date, code_date, courier_date - limit: optional, limits number of results - order_random: if true, returns results in random order - status: optional, filters by status (comma-separated list of status codes) Returns a JSON list of shipments.
Parameters: - tracked_var - one of the following: tohub_delivery, tohub_ofd, ofd_delivery, pickup_tohub, created_pickup, pickup_delivery, tohub_delivery_wdays, tohub_ofd_wdays, ofd_delivery_wdays, pickup_tohub_wdays, created_pickup_wdays, pickup_delivery_wdays - stats_type - grouping type: general (default), clients, franchisors, codes, hubs, zones, errors - standard_day_split: true|false Filter parameters: Date filters: - from_date, to_date - date range (format: dd-MM-yyyy) - date_type - date field to filter on: from_day (default), to_time, pickup_date, to_hub_time, status_date, code_date, courier_date Status filters: - status - status to filter Client filters: - client - client ID to filter - department - department ID to filter Courier filters: - delivery_courier - delivery courier ID - pickup_courier - pickup courier ID Location filters: - from_country - filter by origin country code - county - filter by county (from or to) - hub - filter by hub Shipment type filters: - only_cod: true - filter only COD shipments - no_returns: true - exclude return shipments - only_returns: true - show only return shipments Returns a json list of stats.
Returns a JSON map containing the current shipment status. Alternatively, you can request multiple statuses at the same time using the "awbnos" parameter: API/get_status?api_key=<apikey>&awbnos=<awbno1>,<awbno2>,<awbno3>...
Parameters: - awbnos, a list of comma-separated shipment numbers.
Lists all addresses for a client. It always includes the common public addresses. Parameters: - client: client id, if not used with a client api key - onlyCommon: if true, only common addresses are returned
Requires a courier api key. Parameters: - country - county Returns a json list of cities, with the fields "name", "province" and "country" for each. If the optional parameter country is present, it will return only the cities in that country. ISO 2 codes are preferred. If the optional parameter county is present, it will return only the cities in that county
Returns a json list of codes. The 'code' field is the one used to change a shipment code.
Parameters: - country - type: locker|office|pudo (optional - if missing returns all delivery locations) Returns a json list of delivery locations (lockers and offices). To use a delivery location, when creating a shipment send the "id" of that location in the to_delivery_location field.
Parameters: - from_date - to_date - include_shipments: true|false (default false) - filterByModified: true|false Returns a json list of invoices. The from_date and to_date parameters should be dd-MM-yyyy. If filterByModified is true, it will filter by last modified date.
Parameters: - type: main|extra Returns either: - type=main: list of main service types (ground, express, etc.) - use in create_shipment's service_type field - type=extra: list of extra services that can be added to shipments Notes: - IMPORTANT: When creating shipments, you must use a valid service_type from list_services?type=main - Extra services with is_readonly=1 cannot be set with a client API key
Returns a json list of statuses.
Returns the current user's profile, role, and full permission map with descriptions.
Use this to build UI that adapts to the user's permissions - hide buttons and menu items
the user cannot access rather than showing them and getting errors.
The permissions map includes human-readable name and description for each right.
Also works as a credential test: if credentials are valid, returns {status:done}.
Parameters: - awbno - one of the shipments to be picked up (mandatory - pickup address will be taken from this shipment) - weight - total weight of the shipments to be picked up - cnt - total number of parcels to be picked up - width - max width of the parcels to be picked up - length - max length of the parcels to be picked up - height - max height of the parcels to be picked up - comments - comments for the pickup request - date - date of the pickup request, format: dd-MM-yyyy HH:mm:ss (if missing, scheduled for next working day) - shipment_numbers - (optional) list of shipment numbers to be picked up Only awbno is required. Notes: - If the franchisor doesn't support pickup ordering, the error message may be empty
Parameters: - awbno - type: pdf | html | zpl - format: a4|a6 (default a6) - force_single_print: true|false (default false) - to print just the leader of a group instead of the whole group Returns the shipment label, as pdf, html or ZPL
Parameters: - awbno - base64 - if true, returns a json answer with the base64 encoded pdf in the data.base64_pod field Downloads a Proof of Delivery PDF.
Parameters: - awbnos: comma-separated list of shipment numbers (e.g., "AWB1,AWB2,AWB3") - format: A4|A6 (default: A6) Returns: Binary PDF data (not JSON) containing labels for all specified shipments. Notes: - Content-Type will be application/pdf - All AWBs must exist and be accessible by the API key
Changes the dimensions and weight of a shipment. Can also be used by client API key. Parameters: - awbno: shipment number - weight: new shipment weight - length: new shipment length - width: new shipment width - height: new shipment height Optional parameters: - beeVision: true if the request is coming from a BeeVision scanner Notes: - If beeVision is true, the function expects a JSON payload in the POST data containing the dimensions, weight, and barcode information. - Depending on system settings, resizing may be applied to the group leader shipment instead of individual shipments in a group. - There may be restrictions on decreasing weight below the original value, depending on user permissions and system settings.
Changes the weight of a shipment. Can also be used by client API key.
Parameters:
- awbno: shipment number
- weight: new shipment weight
- count: number of shipments for batch reweight
- no[1..count]: shipment numbers for batch reweight
- weight[1..count]: new shipment weights for batch reweight
Response format:
- Single AWB: [{"AWBNO":"new_weight"}] (JSON array, not standard status:done format)
- Batch: array of AWB:weight pairs
Tests connection and credentials. Returns {status:done, data:{account_name, usercompany_name}} if correct.
Parameters:
- awbno: Shipment number to update
- updates: JSON object containing field:value pairs to update
Currently supported fields:
- cnt: Number of pieces in the shipment
Example:
updates={"cnt": 3}
Notes:
- Only specific fields can be updated
- Changes are validated before being applied
- Some updates may trigger automatic recalculations