Avalara > Blog > Developer > Who Pays for Landed Cost?

Who pays for customs duties and import taxes?

  • Dec 15, 2016 | Amy Morgan

Update March 22, 2018 - AvaTax REST has a new syntax for representing DDP. This post is retained for historical purposes and the information around DDP and DAP remains relevant. You may read about how to calculate customs duties at https://www.avalara.com/us/en/blog/2018/03/calculate-customs-duties-in-rest.html

With the release of the cross-border customs duty calculation functionality, AvaTax now provides features to help you sell across country borders. AvaTax Cross-Border will calculate the customs duty for your cross-border shipments. However, using the calculator requires telling the API which party will be responsible for paying the customs duty & import taxes. Specific to B2C sales, calculating the landed cost depends on the seller’s business decision to support a DDP or DAP service to their customers.

Will the buyer or the seller pay?

The AvaTax Cross-Border calculator currently supports two situations:

  • DAP/DDU - This acronym stands for "Delivered at Place" or “Delivered Duties Unpaid” and indicates the Seller will be responsible for coordinating the shipping from their facility to the Buyer's door. However, the Buyer will be the "Importer of Record" responsible for paying/remitting the customs duty & import tax (including VAT) directly to the customs authorities when the shipment arrives in the destination country. Sellers may choose this situation if they are unable or don't want to pay the duties & taxes to the authorities themselves. In a DAP situation, the Seller will calculate and communicate the estimated duties & taxes at the point of sale as a courtesy, so there are no surprises when the shipment arrives. When the Buyer acts as the importer of record, the Seller has no requirements or liabilities for the importation process.
  • DDP - This acronym stands for "Delivered Duty Paid" and applies when the Seller (or their 3rd party) will be responsible for coordinating the shipping from their facility to the Buyer's door. However, the Seller will be the "Importer of Record" or their agent may be named as the "Merchant of Record" responsible for paying/remitting the customs duty & import tax (including VAT) directly to the customs authorities in the destination country. In a DDP situation, the Seller will calculate and incorporate the customs duties and taxes into the invoice at the point of sale and facilitate the import customs clearance so the end consumer doesn't have to do anything. Sellers may choose this option to provide the best customer experience.

How do you submit DDP?

For this example, we’ll say that the Seller is responsible. That means we’ll use the code “DDP”. Updated 2018-03-22. You may read about the new AvaTax Cross-Border Calculator here

POST /api/v2/transactions/create

    {
  "isSellerImporterOfRecord": true,
  "type": "SalesOrder",
  "companyCode": "DEFAULT",
  "date": "2020-04-03",
  "customerCode": "ABC",
  "addresses": {
    "ShipFrom": {
      "region": "PE",
      "country": "CA",
      "postalCode": "C1A 4P3"
    },
    "ShipTo": {
      "city": "Bainbridge Island",
      "region": "WA",
      "country": "US",
      "postalCode": "98110"
    }
  },
  "lines": [
    {
      "number": "1",
      "quantity": 1,
      "amount": 1000,
      "description": "Footwear",
      "taxCode": "P0000000",
      "hsCode": "6403519030"
    },
    {
      "number": "2",
      "quantity": 1,
      "amount": 50,
      "description": "Shipping",
      "taxCode": "FR010000"
    },
    {
      "number": "3",
      "quantity": 1,
      "amount": 50,
      "description": "Insurance",
      "taxCode": "FR070100"
    }
  ],
  "taxDate": "2020-04-03",
  "currencyCode": "USD"
}

Where do you get the results?

If the transaction was indicated as DDP, AvaTax will return the customs duty and import tax amounts as line items in the invoice. To find it, search through your transaction result for a line item called ImportDuty. Here’s what ImportDuty will look like:

    {
      "country": "US",
      "region": "US",
      "jurisType": "Country",
      "jurisCode": "US",
      "jurisName": "UNITED STATES",
      "taxAuthorityType": 45,
      "stateAssignedNo": "",
      "taxType": "LandedCost",
      "taxSubType": "ImportDuty",
      "taxName": "US LandedCost",
      "rateType": "General",
      "taxable": 1000,
      "rate": 0.1,
      "tax": 100,
      "taxCalculated": 100,
      "nonTaxable": 0,
      "exemption": 0
    }

This indicates that the customer is expected to spend $100 USD in import duties shipping this item from Canada to the United States. The Seller now takes on the risk of shipping the product - which means, if there was an error or a dispute about shipment, the Seller would be responsible for paying the difference.

Comparing to DAP

How is this different from DAP? If instead you had indicated DAP (isSellerImporterOfRecord = false) mode for this transaction, AvaTax would have returned a message telling the user what the total estimated cost will be, so that you could communicate that estimate to the Buyer. Here’s where this would have looked like:

    {
      "summary": "Estimated import customs duty & tax calculated. Buyer is the importer of record and will pay import customs duty & tax upon arrival in destination country. 100 Import Duty and 99 Retail Sales and Use tax applies.",
      "details": "",
      "refersTo": "LandedCost",
      "severity": "Success",
      "source": "Avalara.AvaTax.Services.Tax"
    }

In this case, the Buyer is then responsible for the risk of shipment. You should tell the buyer what amounts of customs duties or import taxes they should expect, but then any unexpected fees or mistakes in shipping would be the responsibility of the Buyer.

In either situation, AvaTax returns the customs duties and import rolled up or broke out individually.

What happens if I can't find my DDP line item?

If you can’t find your DDP line item, there are a number of ways you can figure out what happened. The first place to look is in the messages value in the result. The messages structure contains information provided by the AvaTax Cross-Border engine about your transaction calculation. In our case, we’ll see three messages, each of which tells us part of what happened:

    "messages": [
    {
      "summary": "Shipment meets US import duty de minimis threshold. Therefore, import duty applies.",
      "details": "",
      "refersTo": "LandedCost",
      "severity": "Success",
      "source": "Avalara.AvaTax.Services.Tax"
    },
    {
      "summary": "Estimated import customs duty & tax calculated. Buyer is the importer of record and will pay import customs duty & tax upon arrival in destination country. 100 Import Duty and 99 Retail Sales and Use tax applies.",
      "details": "",
      "refersTo": "LandedCost",
      "severity": "Success",
      "source": "Avalara.AvaTax.Services.Tax"
    }

  ]

What do these messages mean?

  • The ”Estimated import customs duty” message tells us duty that is being charged in the United States for receiving this product. This isn't very interesting on its own, but you can see that the AvaTax Cross-Border engine is in fact working and matching your transaction against U.S. customs laws.
  • The message about the de minimis threshold is more interesting. Most countries allow, in their laws, that small shipments should be allowed to proceed without being taxed, because the hassle to individual citizens is too great. This concept is embodied in the legal term de minimis. If your transaction had a smaller dollar value, you might instead see a message that says Shipment does not meet US import duty de minimis threshold (800USD). Therefore, duty free. No declaration required. This indicates that the Buyer will be declared the importer of record and that they will be responsible for customs duties and import taxes.
  • If you see this message, you know your shipment is duty-free! Be careful, though: if you send lots of shipments regularly, some countries may have laws that require you to pay duties even if individual shipments are below this threshold.

Here’s hoping all your holiday shipments arrive in time!


Sales tax rates, rules, and regulations change frequently. Although we hope you'll find this information helpful, this blog is for informational purposes only and does not provide legal or tax advice.
Avalara Author
Amy Morgan
Avalara Author Amy Morgan
Amy Morgan is VP Cross-Border & Global Trade at Avalara, responsible for products and features related to automating global trade and Cross-Border tax compliance in retail environments. Amy is a Licensed U.S. Customs Broker and Certified Customs & Export Specialist who has managed global trade and customs compliance operations for Amazon, Costco Wholesale, Nordstrom, and Microsoft, and spent two years consulting exclusively with small and mid-size companies to understand their Cross-Border struggles. She is a global trade enthusiast on a mission to use her “big trade” background to eliminate Cross-Border bureaucracy for companies of all sizes.