Create Parcel

With this service, you can create a parcel in the Inex Group system. The service automatically checks if a parcel with the specified tracking code exists. If the parcel already exists and belongs to your vendor, the existing parcel information will be returned (200 OK). If the parcel is registered by another vendor, an error will be returned (403 Forbidden). Use parcelType to choose the parcel type: online (online parcel, the default) or internalShipment (domestic shipment within Georgia). Which types your operator may create is set by an Inex Group administrator; requesting a type that is not allowed returns 403 Forbidden.
POST /integrators/parcels/create

Parameters

Field Type Required Description
parcelType string No Parcel type. When omitted, an online parcel is created. Use only a type allowed for your operator, otherwise 403 is returned.
Values: online (online parcel), internalShipment (internal shipment, Georgia → Georgia).
internalShipment: the sender branch is the branch attached to your operator, shipping is always by road (byRoad) and the tariff is the one attached to your operator. The receiver branch / courier address must be in Georgia. All other fields (receiver, declaration, delivery) are the same as for an online parcel.
clientReferenceId string No Your internal ID (e.g. order number). Maximum 255 characters.
waybillNumbers array Yes Array of tracking codes.
waybillNumbers.* string Yes Tracking code. Maximum 255 characters.
status string Yes Parcel status.
Values: created (Created), received (Received in WH), pending (Dispatched).
weight integer Conditional Weight in grams. Required if status is received or pending.
width / height / length integer No Dimensions in millimeters.
shipmentType string Yes Shipment type.
Values: byAir, bySea, byTrain, byRoad.
Ignored for internalShipment — shipping is always byRoad.
senderCountryCode string Conditional Sender country code (ISO 3166-1 alpha-2, e.g. CN, TR, US). Required when your operator has no country attached; otherwise the country attached to the operator is used. The country must be active for online parcels. Must not be sent with parcelType internalShipment (422) — the sender country is always Georgia.
deliveryType string Yes Reception type.
Values: pickupInStore (Takeout from branch), delivery (Home delivery).
pickupLocationId string Conditional Branch code (locationCode). Required if deliveryType is pickupInStore and prohibited if deliveryType is delivery.
See branches service
receiver.inexUserId string (uuid) Conditional Identifier of a customer signed in with INEX SSO (the id_token's sub). The receiver is given either in full (personalId, firstname, lastname, phoneNumber) or by this field alone. No account is created.
See INEX SSO
receiver.personalId string Conditional Receiver's personal number. Maximum 255 characters.
Required unless receiver.inexUserId is sent; optional with inexUserId and written only when the account has no personal number.
receiver.firstname string Conditional Receiver's first name. Maximum 255 characters.
Required unless receiver.inexUserId is sent; forbidden together with inexUserId.
receiver.lastname string Conditional Receiver's last name. Maximum 255 characters.
Required unless receiver.inexUserId is sent; forbidden together with inexUserId.
receiver.phoneNumber string Conditional Receiver's phone number. Maximum 255 characters.
Required unless receiver.inexUserId is sent; forbidden together with inexUserId.
receiver.email string No Receiver's email. Maximum 255 characters.
Forbidden together with inexUserId.
deliveryDetail object Conditional Address object. Required if deliveryType is delivery and prohibited in every other case.
deliveryDetail.city string Conditional City name. Required if deliveryType is delivery. Maximum 255 characters.
deliveryDetail.address string Conditional Exact address. Required if deliveryType is delivery. Maximum 1000 characters.
deliveryDetail.district string No District. Maximum 255 characters.
deliveryDetail.latitude number No Address latitude.
deliveryDetail.longitude number No Address longitude.
declaration.sourceUrl string (url) Yes Source of purchase (website).
declaration.currencyCode string Yes Currency code (e.g. USD, EUR, GEL). Exactly 3 characters.
declaration.fileUids array (uuids) No Uploaded file IDs (invoice).
See file upload service
declaration.items array Yes Array of items. At least 1 element.
declaration.items.*.description string Yes Item description. Maximum 5000 characters.
declaration.items.*.price integer Yes Item price in cents/tetri (e.g. 10.50$ = 1050). Minimum 0.
declaration.items.*.quantity integer Yes Quantity. Minimum 1.
declaration.items.*.categoryName string No Category name. Maximum 255 characters.
declaration.items.*.pictureUrl string (url) No Item image link. Maximum 5000 characters.

Note on address detection (home delivery)

If you choose courier delivery (delivery), it is advisable to indicate the district. In case the district is empty or invalid, the system will try to automatically detect the appropriate district from the provided address text. If detection fails or the detected district is not served by a branch, the system will return a 400 status with a corresponding message.

Response Structure 200 OK

Attribute Type Value Description
data.weight integer 1551 Parcel weight in grams.
data.length integer 318 Parcel width in millimeters.
data.height integer 684 Parcel height in millimeters.
data.width integer 489 Parcel length in millimeters.
data.status string disposed Parcel status. Possible options: created, received, pending, arrived, takeout, returned, confiscated, lost, dropOfDate, damaged, compensated, notCompensated, returnToSellerIsInProgress, disposed, stored, form4, temporarilySuspended
data.subStatus string|null null Parcel sub-status. May be null. Possible values: readyForTerminal, goingToTerminal, arrivedAtTerminalStored, readyFromTerminal, comingFromTerminal, arrivedAtBranch, readyForCustoms, goingToCustoms, arrivedAtCustomsStored, readyFromCustoms, comingFromCustoms, readyForTerminalTakeout
data.parcelType string internalShipment Parcel type: online or internalShipment.
data.deliveryType string pickupInStore Takeout type: pickupInStore (pick up from branch) or delivery (courier).
data.senderCountry.name string United States Sender country name in Latin.
data.senderCountry.code string US Sender country code - ISO 3166-1 alpha-2.
data.receiverCity.name string Tbilisi Receiver city name in Latin.
data.receiverPickupLocation.locationCode string 200001 Branch code. This is exactly the value to send as pickupLocationId when creating a parcel.
data.receiverPickupLocation.name string Isani Receiver branch name in Latin.
data.receiverPickupLocation.address string Isani, Atskuri Street #45 Receiver branch address in Latin.
data.receiverPickupLocation.phone string (0322) 2222222 Receiver branch phone number.
data.receiverPickupLocation.latitude float 56.961032 Receiver branch coordinates.
data.receiverPickupLocation.longitude float 94.614571 Receiver branch coordinates.
data.receiverPickupLocation.postalCode string Isani Receiver branch postal code.
data.waybillNumbers array [] Array of parcel waybill numbers.
data.waybillNumbers.* string eqweqwecwrekjewqionwqe.ewqe1eqq Parcel waybill number.

Possible Responses

Code Description
200 OK Parcel object.
400 Bad Request Logical error, for example: a duplicate tracking code was detected or the district/branch could not be identified from the address.
422 Unprocessable Validation error, e.g. no receiver given, an unknown receiver.inexUserId, or one sent together with other receiver fields.
404 Not Found Parcel with the specified waybill number was not found.
403 Forbidden You do not have permission to perform this operation, e.g. the requested parcelType is not allowed for your operator, or for internalShipment your operator has no tariff or sender branch attached.
500 Server Error An error occurred while creating the parcel, see the attached message