# Create International Order International deliveries use the standard Create Delivery endpoint. The key difference is that each parcel must include an `international_item` object containing customs declaration data. International services must be enabled at the tenant level before quoting or booking. Rendr dynamically selects the appropriate carrier service based on parcel attributes, destination, and customs data — no manual product ID selection is required. *** ## Endpoint ``` POST {{domain}}/{{tenant_id}}/deliveries ``` **Authentication:** Bearer token required via the `Authorization` header. *** ## Supported Countries Destination countries must be configured in a tenant-level whitelist using ISO 3166-1 Alpha-2 codes (e.g. `AU`, `NZ`, `US`). Requests to unconfigured countries will fail validation. *** ## Request Payload The `international_item` object on each parcel triggers international service selection. Standard parcel dimensions and weight are still required. For international deliveries, the `country` field is required in both the `address` and `customer` objects: * **`address.country`** — the destination country code, used for carrier routing and customs validation. * **`customer.country`** — the recipient's country code, used for phone number formatting when communicating with the recipient. ```json title="address and customer — International Requirements" { "address": { "address": "7 Howard Street", "city": "London", "state": "England", "post_code": "EC1A 1BB", "country": "GB" }, "customer": { "first_name": "John", "last_name": "Doe", "phone": "07700900000", "email": "john@doe.com", "country": "GB" } } ``` ### Full Example ```json title="Parcels — Full International Example" "parcels": [ { "reference": "PARCEL-001", "length_cm": 30, "width_cm": 20, "height_cm": 15, "weight_kg": 2.5, "quantity": 1, "international_item": { "commercial_value": true, "classification_type": "SALE_OF_GOODS", "export_declaration_number": "EXP123456789", "sender_customs_reference": "SCR2026001", "import_reference_number": "IMP-UK-001", "non_delivery_action": "RETURN", "certificate_number": "CERT-12345", "invoice_number": "INV-2026-001", "comments": "Handle with care - fragile items", "item_contents": [ { "description": "Handcrafted ceramic vase", "sku": "VASE-001", "quantity": 1, "weight_kg": 1, "value_cents": 1500, "tariff_code": "420321", "country_of_origin": "AU", "reference": "ITEM-001", "tariff_concession": "TC-001", "free_trade_applicable": true } ] } } ] ``` ### Minimal Example When `line_items` are provided in the delivery payload, several `item_contents` fields are auto-populated. Only `description` and `weight_kg` are strictly required per item. ```json title="Parcels — Minimal International Example" "parcels": [ { "reference": "PARCEL-001", "length_cm": 30, "width_cm": 20, "height_cm": 15, "weight_kg": 2.5, "quantity": 1, "international_item": { "item_contents": [ { "description": "Handcrafted ceramic vase", "weight_kg": 1 } ] } } ] ``` When `line_items` are present, the following `item_contents` fields are auto-populated if not explicitly provided: `quantity`, `value_cents`, `sku`, `reference`, `country_of_origin` (defaults to `AU`), `commercial_value` (defaults to `true`), and `classification_type` (defaults to `SALE_OF_GOODS`). *** ## Field Definitions ### `international_item` Fields | Field | Type | Required | Description | | --------------------------- | ------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------ | | `commercial_value` | Boolean | Yes | Whether the shipment has commercial value. `true` = sale of goods, `false` = gift or sample. Affects customs treatment. | | `classification_type` | String | Yes | Customs classification. Allowed values: `SALE_OF_GOODS`, `GIFT`, `COMMERCIAL_SAMPLE`, `DOCUMENTS`, `RETURN_OF_GOODS`, `OTHER`. | | `export_declaration_number` | String | Conditional | Export declaration number issued by customs. 9–20 characters. | | `sender_customs_reference` | String | No | VAT, IOSS, or tax registration number. Max 50 alphanumeric characters. | | `import_reference_number` | String | No | Import reference required by destination customs. Max 40 characters. | | `non_delivery_action` | String | No | Action if the shipment cannot be delivered. Allowed values: `RETURN`, `ABANDON`. | | `certificate_number` | String | Conditional | Certificate number for regulated goods (e.g. health or phytosanitary). Max 35 characters. | | `licence_number` | String | Conditional | Export or import licence for controlled goods. Max 35 characters. | | `invoice_number` | String | No | Commercial invoice reference. Max 35 characters. | | `comments` | String | No | Additional customs or handling notes. Max 120 characters. | | `item_contents` | Array | Yes | Array of item-level customs declarations. Min 1, max 20 items. | ### `item_contents` Fields | Field | Type | Required | Description | | ----------------------- | ------- | -------- | ------------------------------------------------------------------------------------------------------------ | | `description` | String | Yes | Clear, specific customs description. Max 40 characters — truncated before submission to carrier if exceeded. | | `weight_kg` | Number | Yes | Weight per single unit in kilograms. Must be ≥ 0. | | `quantity` | Integer | Yes | Number of identical items. Min 1. Auto-populated from `line_items` if not provided. | | `value_cents` | Integer | Yes | Value per unit in cents (AUD). e.g. `1500` = \$15.00. Auto-populated from `line_items` if not provided. | | `sku` | String | No | Merchant SKU reference. Max 50 characters. Auto-populated from `line_items[].code` if not provided. | | `reference` | String | No | Merchant item reference. Max 50 characters. Auto-populated from `line_items[].name` if not provided. | | `country_of_origin` | String | Yes | ISO 3166-1 Alpha-2 country code. Defaults to `AU` if not provided. | | `tariff_code` | String | No | HS tariff code (6–12 characters). Rendr will determine this if not supplied. | | `tariff_concession` | String | No | TCO reference for Australian imports. Max 20 characters. | | `free_trade_applicable` | Boolean | No | Whether a Free Trade Agreement applies to this item. | *** ## Response The response follows the standard delivery creation structure with one additional field for international shipments: ```json title="classifications — Response" "classifications": [ { "origin_country_code": "AU", "price": 100, "quantity": 2, "sku": "SKU111", "tariff_code": "691200", "description": "Handcrafted ceramic vase" } ] ``` This array contains the classification details for each item as resolved by the international classification engine. *** ## Manifesting & Labels International shipments follow the same manifesting and labelling workflow as domestic services. Use the standard manifest and label retrieval endpoints — no separate process is required for international orders.