Call get-service first to obtain appropriate mainService, extraService, and specialService. Send the route and product to avoid missing-input runtime failures. manualPrice applies only when the chosen service is not calculated automatically; customerCode and partnerInfo follow the service-discovery rules.
COD does not change the quoted amount. At this step and at get-service, product.moneyCollection only selects service rules for COD greater than zero versus zero in Drools. It does not change totalPrice, mainPrice, or extraPrices, and does not persist COD on an order. You must resend top-level moneyCollection in create-order.
totalPrice is the final VAT-inclusive amount after discounts. totalPriceBeforeDiscount is before discounts. vat is a percentage; vatPrice is the tax amount; beforeVatPrice excludes tax. The response exposes round/roundNum, the applied rounding rule and precision. manualPrice echoes the manual input or is null. discountType=AMOUNT means a fixed amount, PERCENT means a percentage.
Authentication headers
Header
Requirement
Value / meaning
X-Api-Token
Required
${API_TOKEN}: environment-specific token issued by TMS
X-Client-Source
Required
${PARTNER_CODE}: partner code paired with the token
Content-Type
With a JSON body
application/json
Accept
Required by source
application/json
Accept-Language
Optional
vn, en, my, km, lo
Request fields
Quote known services. Source table omits orderService but appendix explicitly references section 6; confirm its acceptance.
Top-level and required fields are shown first. Expand object groups for the full schema; no fields are omitted.
Field
Type
Required
Description
product
object
See description
Recommended product object. No @NotNull validation is documented for pricing.
fromLocation
array
See description
Recommended sender components, levels 0–3 and 999.
toLocation
array
See description
Recommended recipient components, levels 0–3.
isDomestic
boolean
See description
Domestic=true, international=false. Defaults to true. Default: true.
customerCode
string
See description
Internal customer code; defaults to the account associated with X-Api-Token.
Changes display/default/lock flags of GTN/NTN/VTT, not price. Values: GTCH, VTT, GTN, UNKNOW.
orderService.receiverService
string
See description
Recipient preference with the same flag-only effect. Values: NTCH, NTN, VTT, UNKNOW.
Example JSON body
Save as request.json. Replace every ${…} string and example ID with actual environment values before sending. cURL with --data @request.jsondoes not interpolate variables inside JSON files. Identities are synthetic.
BASE_URL must include /tms-partner/api/v1. Load the token and partner code from your private environment; never paste secrets into documentation or AI prompts.
true: automatic Drools calculation; false: provide manualPrice to get-all.
specialPrices[].isShow
boolean
See description
Extra service visible for selection; false means internal and need not be submitted.
specialPrices[].isChosen
boolean
See description
Extra service selected by default.
specialPrices[].isChangeable
boolean
See description
Whether the user may toggle the extra service; otherwise locked by orderService.
specialPrices[].isCalculated
boolean
See description
Whether the extra service is priced or only displayed.
Error handling
See HTTP codes and source limitations. HTTP success does not prove COD, fees, or cancellation are correct; inspect the documented business fields. Do not assume create-order retries are safe.
AI resources
Give your AI assistant the current company’s documentation, Markdown pages, and OpenAPI contract.
Help me integrate with Unitel Logistics (v1).
Read https://zerohost-a4e4c3a4-479b899751a8bff420e09c87ec393946.zhst.app/mfexpress/en/llms.txt first, then https://zerohost-a4e4c3a4-479b899751a8bff420e09c87ec393946.zhst.app/mfexpress/en/llms-full.txt and https://zerohost-a4e4c3a4-479b899751a8bff420e09c87ec393946.zhst.app/mfexpress/en/openapi.json.
Use only the documented endpoints, authentication, schemas and examples. Ask me about my application stack and the operation I need before writing code. Identify any documented limitations or inconsistencies. Keep credentials in environment variables, never in client-side code. Use the sandbox for examples; do not execute requests or change production data without my explicit approval.
Documentation locale: en. API language value: en.
Current page: https://zerohost-a4e4c3a4-479b899751a8bff420e09c87ec393946.zhst.app/mfexpress/en/calculate-pricing.