Delivered Duty Paid (DDP)

Delivered Duty Paid (DDP)

Arta’s Delivered Duty Paid (DDP) service enables clients to offer their buyers a seamless cross-border purchasing experience where all duties, taxes, and customs processing fees are settled before delivery. Rather than leaving buyers to deal with unexpected charges from carriers at the door, DDP ensures the total landed cost is known and paid upfront.

Arta supports three DDP variants, each designed for a different integration depth and use case.

Which variant is right for you?

  • DDP at Client Checkout — An API-driven workflow for clients who want to embed shipping and landed costs directly into their own checkout experience.
  • DDP in Hosted Booking — Updates to Arta’s hosted booking product that let clients require or optionally surface landed cost shipping at checkout.
  • DDP Assist — A hosted workflow requiring nearly zero integration effort. Best for clients who want to offer DDP without building custom UI.

DDP at Client Checkout

DDP at Client Checkout is an API-driven workflow designed to enable a single transaction for purchases, shipping and customs clearance. Using Import Cost Estimates and Arta’s DDP customs process, clients can provide all-in rates within their own cart.

How It Works

  1. Create a quote request for shipping costs, set Customs Process to DDP and includes Harmonized Schedule (HS) Codes on each object. You can also provide the Country of Origin for the object, if you do not we will use the origin location country.
  2. Allow buyers to select their preferred quote or use internal logic to determine a particular quote.
  3. Calls the Import Cost Estimates endpoint with the selected quote_id to retrieve a breakdown of duties, taxes, and fees.
  4. Either require DDP or provide buyers with the option to select between DDP and standard delivery.
    • Delivered Duty Paid (DDP) (recommended) — All duties, taxes, and fees included in the checkout total.
    • Standard Delivery (DDU) — Duties/taxes collected by the carrier at delivery.
  5. If DDP, collect shipping charges and the import cost estimate from the buyer for the full landed cost. If standard, collect only shipping charges.
  6. If DDP, on payment success, book the shipment via Arta’s Create Shipment endpoint with customs_process: "ddp". If standard, book the shipment with customs_process: "ddu"
  7. Arta will automatically creates a Customs Invoice, which can be found under Fulfillment Billing in the Dashboard.

Example API Calls

All requests require the ARTA_APIKey header for authentication. Base URL: https://api.arta.io

1. Create Quote Request

POST https://api.arta.io/requests

`{
  "request": {
    "currency": "USD",
    "customs_process": "ddp",
    "destination": {
      "address_line_1": "123 High Street",
      "city": "London",
      "region": "England",
      "postal_code": "SW1A 1AA",
      "country": "GB",
      "contacts": [
        {
          "name": "Sarah Williams",
          "email_address": "sarah@example.com",
          "phone_number": "+44 20 7946 0958"
        }
      ]
    },
    "origin": {
      "address_line_1": "456 Gallery Avenue",
      "city": "New York",
      "region": "NY",
      "postal_code": "10001",
      "country": "US",
      "contacts": [
        {
          "name": "John Doe",
          "email_address": "john@example-gallery.com",
          "phone_number": "+1 212 555 0100"
        }
      ]
    },
    "objects": [
      {
        "subtype": "painting_unframed",
        "width": 30,
        "height": 40,
        "depth": 2,
        "unit_of_measurement": "in",
        "weight": 5,
        "weight_unit": "lb",
        "value": "26000.00",
        "value_currency": "USD",
        "customs": {
          "hs_code": "970190",
          "country_of_origin": "FR",
          "medium": "Oil on canvas",
          "temporary_admission": false
        }
      }
    ],
    "preferred_quote_types": ["parcel", "premium", "select", "self_ship"]
  }
}`

Returns a request with quotes[] — each quote has an idquote_typetotal, and included_services.

2. Create Import Cost Estimate

POST https://api.arta.io/import_cost_estimates

`{
  "import_cost_estimate": {
    "quote_id": 258012,
    "currency": "USD",
    "end_use": "not_for_resale"
  }
}`

Returns an estimate with estimate.summary containing dutiestaxesfees, and arta_fees, plus estimate.line_items[] with individual breakdowns. Use these values to present landed costs to the buyer before payment.

3. Book Shipment

POST https://api.arta.io/shipments

`{
  "shipment": {
    "quote_id": 258012,
    "customs_process": "ddp",
    "internal_reference": "ORDER-2026-0401"
  }
}`

Requires a successful import cost estimate on the quote. Creates the shipment, a Fulfillment Invoice, and a DDP Duty Invoice. The Duty Invoice is auto-charged to the organization’s standing payment method for the relevant currency.

Note: customs_process can be set to "ddp" at request creation time or overridden at shipment booking. The shipment-level value takes priority. If set to "ddu" at booking, no Duty Invoice is created and the buyer pays duties to the carrier at delivery.


DDP in Hosted Booking

DDP in Hosted Booking extends Arta’s existing hosted booking product to surface landed cost options during the booking checkout flow. Clients can configure whether DDP is required or optional for their bookings.

Configurations

  • DDU — Offered to the client as “Standard Delivery”. Duties and taxes are collected by the carrier at delivery.
  • DDP — All duties, taxes, and fees are prepaid during checkout. Requires an HS Code per object when generating the Booking Session.
  • DDP Optional — Customer completing checkout can decide between DDP and DDU. If HS Codes are provided, this option will be presented as an on/off toggle within the Booking Session. If not, recipients will be emailed after the Electronic Customs Documents (ECD) form is approved for the shipment and the status of the shipment is Confirmed to prepay customs costs. See more on this process below under DDP Optional.

How It Works

  1. To offer DDP, an HS Code is required per object when generating Booking Sessions or Shared Requests via our Dashboard or the API. You can also provide the Country of Origin for the object, if you do not we will use the origin location country.
  2. Under Options or in the API call you will select the Customs Process: DDU, DDP or DDP Optional.
  3. Within the Hosted Session, the customer is presented with a customs clearance choice:
    • Delivered Duty Paid (DDP) (recommended) — All duties, taxes, and fees are prepaid during checkout.
    • Standard Delivery (DDU) — Duties/taxes collected by the carrier at delivery.
  4. If DDP is selected, Arta collects payment from the destination contact via credit card.
  5. If Standard Delivery is selected, the recipient will be contacted by the carrier when the shipment arrives in their destination country to collect customs duties and taxes.

Note: Because payment is collected from the destination contact during the hosted booking checkout, the client’s organization payment method is not charged for duties in this workflow.

Hosted Sessions via API

Booking Session

When creating a Booking Session, you will set the Customs Process and ensure that every object has an HS Code for clients to engage with DDP in our hosted experience.

Shared Request

To create a Shared Request with DDP via API, you will need to take a few additional steps first.

  1. Create a Quote Request
  2. Create Import Cost Estimates for each quote
  3. Then, create the Shared Request

DDP Assist

DDP Assist is a low-effort hosted workflow that introduces a DDP choice after a shipment has already been booked. It is triggered after an Electronic Customs Documents (ECD) form is approved for the shipment and the status of the shipment is Confirmed.

How It Works

  1. A shipment is booked with Customs Process set to DDP Optional.
  2. Once the shipment is Confirmed, the destination contact receives an email titled “Choose your delivery option” with a link to an Arta-hosted page.
  3. On that page, the contact selects one of two options:
    • Expedited Delivery (DDP) (recommended) — The contact pre-pays Arta for customs costs plus a processing fee. The shipment labels are then booked via DDP.
    • Standard Delivery (DDU) — Duties and taxes are collected by the carrier at delivery.
  4. If DDP is selected, Arta collects payment from the destination contact via credit card.

DDP Assist is available on all shipments, whether booked via the Dashboard or API.

Example API Calls

POST https://api.arta.io/shipments

`{
  "shipment": {
    "quote_id": 258202,
    "customs_process": "ddp_optional"
  }
}`

Setting customs_process to "ddp_optional" tells Arta to trigger the hosted DDP choice flow once the EEI form is approved. No import cost estimate needs to be created in advance — Arta handles this internally when the destination contact opts into DDP.

Note: Because payment is collected directly from the destination contact via the hosted form, the client’s organization payment method is not charged for duties in this workflow