Validate IOSS eligibility

Use a POST operation and the following URL to send this request. You must include the required fields in the request's body:
{api_url}/ioss-validation
where {api_url} is the API's URL.
For example:
https://api.epalglobal.co/ioss-validation

Details

Table 1. Request Details
Detail Value
Operation POST
Endpoint /ioss-validation
Fields Body and response parameters

Body Parameters

You must specify the details of the ePAL transaction in the body of the request. You can use the full resposne from the Process transaction or Process fulfillment requests. For more information about these fields, see the Process transaction and Process fulfillment topics.

Response Parameters

Table 2.
Response Parameter Details Description
destinationCountry
  • Type: String
  • Status: Mandatory
The name of the country where the goods are sent.
details
  • Type: Array of strings
  • Status: Mandatory
Individual messages about the IOSS eligibility test.
exchangeRateUsed
  • Type: Number
  • Status: Optional
The exchange rate used for currency conversions.
hasAlcohol
  • Type: Boolean
  • Status: Mandatory
Indicates whether or not the goods contain alcohol.
iossThreshold
  • Type: Number
  • Status: Optional
The threshold value for IOSS. This can be used for comparisons.
isB2B
  • Type: Boolean
  • Status: Mandatory
Indicates whether the transaction qualifies as a B2B transaction or not.
isEUDestination
  • Type: Boolean
  • Status: Mandatory
Indidcates whether the destination is a European Union (EU) member state or not.
isIOSSCompliant
  • Type: Boolean
  • Status: Mandatory
Indicates whether the consigment is eligible for IOSS or not.
message
  • Type: String
  • Status: Mandatory
Details about why the consignment is or is not eligible for IOSS.
originalCurrency
  • Type: String
  • Status: Optional
If a currency conversion is applied, this is the original or source currency from which the target currency is converted.
originalTotalValue
  • Type: Number
  • Status: Optional
The total value before the currency conversion, in the source or original currency.
sourceCountry
  • Type: String
  • Status: Mandatory
The name of the source country.
totalIntrinsicValue
  • Type: Number
  • Status: Optional
The total intrinsic value of the goods, exclusing tax and shipping.
validatedAt
  • Type: String
  • Status: Mandatory
T he timestamp of whne the validation eligibility check occurred.

Request Example

The following example request details a B2B transaction:
{
  "addresses": [
    {
      "type": "SOURCE",
      "country": "CN",
      "fullName": "CN Supplier",
      "street": "100 Shenzhen Road",
      "city": "Shenzhen",
      "postalCode": "518000",
      "email": "supplier@cn.com",
      "phone": "+86 755 1234567"
    },
    {
      "type": "DESTINATION",
      "country": "DE",
      "fullName": "DE Buyer GmbH",
      "street": "1 Hauptstrasse",
      "city": "Berlin",
      "postalCode": "10115",
      "email": "buyer@de.com",
      "phone": "+49 30 1234567"
    }
  ],
  "products": [
    {
      "hs6Code": "610910",
      "description": "Cotton T-Shirt",
      "productType": "physical",
      "value": 120,
      "qty": 1
    }
  ],
  "isB2B": true
}
The following example request shows all the possible fields:
{
  "addresses": [
    {
      "type": "SOURCE",
      "fullName": "Supplier Inc.",
      "companyName": "Supplier Inc.",
      "email": "supplier@company.com",
      "phone": "+1 408-555-0123",
      "street": "1 Tech Way",
      "city": "Cupertino",
      "postalCode": "95014",
      "country": "US"
    },
    {
      "type": "DESTINATION",
      "fullName": "Customer Name",
      "companyName": "Customer Company",
      "email": "customer@email.com",
      "phone": "+353 61 123 456",
      "street": "No. 1 Charlotte Quay",
      "city": "Limerick",
      "postalCode": "V94 TW5E",
      "country": "IE"
    }
  ],
  "products": [
    {
      "hs6Code": "852692",
      "description": "Radio remote control",
      "productType": "physical",
      "value": 45,
      "qty": 2,
      "originatingCountry": "US"
    }
  ],
  "commands": {
    "calculateTaxExclusive": true
  },
  "isB2B": false
}

Response Example

The following is an example of a successful response:
{
  "isIOSSCompliant": true,
  "message": "This consignment is eligible for IOSS because: The Ship From country is Netherlands, The Destination country is Germany, The consignment has been identified as B2C, ePAL did not identify any Excisable goods in the consignment(*), The total intrinsic value of the physical goods is €120.00 (excluding VAT and shipping)",
  "details": [
    "The Ship From country is Netherlands",
    "The Destination country is Germany",
    "The consignment has been identified as B2C",
    "ePAL did not identify any Excisable goods in the consignment(*)",
    "The total intrinsic value of the physical goods is €120.00 (excluding VAT and shipping)"
  ],
  "totalIntrinsicValue": 120,
  "iossThreshold": 150,
  "isEUDestination": true,
  "isB2B": false,
  "hasAlcohol": false,
  "sourceCountry": "Netherlands",
  "destinationCountry": "Germany",
  "validatedAt": "2025-10-15T12:00:00.000Z",
  "originalCurrency": "USD",
  "exchangeRateUsed": 0.92,
  "originalTotalValue": 130.43
}