Liability Determination

Learn about required fields and additional requirements for liability determination.

Liability determination requires Vertex for Marketplaces. It is available for physical line items (by default, all line items are treated as physical) and is automatically applied in supported countries.

Request

Here are the request fields:

FieldValueNotes
customer.destination.countryOne of the supported countries: any European Union country or AU, CH, GB, MY, NO, NZ, or SG.Required to trigger liability determination. Liability determination is not triggered for unsupported countries. For liability determination, this field is used as the ship-to address to determine whether the transaction is domestic, cross-border, or another applicable transaction type.
customer.taxRegistrations\[\]A taxRegistrations with VAT Registration or no taxRegistrationType.If provided and valid (validationResult.isValid is true or tax number validation was not triggered), the entries are used to determine whether to classify the transaction as B2B instead of the default B2C classification. This changes the liability rules applied.
lineItems[]At least one lineItems.Nested lines are not considered, even if the request does not explicitly reject them.
lineItems[].consignmentIdA string identifier. Lines in the same consignment should have the same value.By default, all lines with the same seller and physicalOrigin belong to the same consignment.
lineItems[].extendedPriceA value greater than or equal to zero.Required unless unitPrice and, optionally, quantity are provided.
lineItems[].modeOfTransportA 4 or 5 to indicate air or postal shipment.Use for Singapore liability determination.
lineItems[].quantity.valueSee extendedPrice.
lineItems[].product.valueA product taxability driver code.Tax liability determination is currently available only for physical goods. If a specific tax driver code is configured to represent digital goods—or if all line items are configured as digital goods by default and exceptions are configured for physical line items—this field may change how the lineItem is treated and enable or disable liability determination.
lineItems[].product.productClassA product class taxability driver code.See lineItems[].product.value.
lineItems[].unitPriceA value greater than zero.See extendedPrice.
seller.administrativeOriginThe Address object from Vertex O Series Cloud.If provided, this field is used to determine whether the seller is located within the relevant region during liability determination.
seller.physicalOriginThe Address object from Vertex O Series Cloud.Used as the ship-from address in liability determination rules.
seller.taxRegistrations[]Any number of entries with isoCountryCode and VAT Registration or no taxRegistrationType. Entries with Import One-Stop Shop or Union Scheme as the taxRegistrationType can also be provided.

Used during liability determination to check whether the seller is registered in a particular region or country. Liability determination does not look up taxpayer setup in Vertex O Series Cloud.

You must provide all registration information in the request.

Marketplace taxpayer identifiers

The seller provided in the request that triggers liability determination is used as the seller taxpayer in the three-party sale. Configure them on the Vertex for Marketplaces platform.

You cannot specify marketplace details in the request.

Response

The following fields are set on DESTINATION taxes when liability determination is executed:

FieldValueNotes
data.lineItems.taxes[].taxLiabilityOwnerThe party liable for remitting the tax. This field applies only to the supply side. Possible values are MARKETPLACE, SELLER, BUYER, and NONE.
data.lineItems.taxes[].taxLiabilityRuleThe applied liability rule identifier.
data.lineItems[].sellerIf liability shifts from the seller to the marketplace, the object at the lineItems level is modified to include the marketplace identifiers (company, division, and department) used in the call to Vertex O Series Cloud.

Applying liability determination may affect the calculated tax rates.

Example

Minimal request triggering liability determination:

{
    "customer": {
        "destination": {
            "country": "PL"
        }
    },
    "currency": {
        "isoCurrencyCodeAlpha": "EUR"
    },
    "lineItems": [
        {
            "extendedPrice": 100
        }
    ],
    "saleMessageType": "QUOTATION",
    "seller": {
        "company": "test_seller",
        "taxRegistrations": [
            {
                "isoCountryCode": "PL"
            }
        ]
    },
    "transactionType": "SALE"
}

Response:

{
    "data": {
        ...
        "lineItems": [
            {
                ...
                // modified seller object on the line level
                "seller": {
                    // pre-configured identifiers used
                    // when liability is on marketplace,
                    // visible in the response
                    "company": "ROOT",
                    "division": "marketplace_eu",
                    "department": "test_account"
                    "taxRegistrations": []
                },
                "taxes": [
                    {
                        // liability results
                        "taxLiabilityOwner": "MARKETPLACE",
                        "taxLiabilityRule": "physical-shipment-into-EU-goods-below-150-eur-with-ioss-non-EU-supplier",
                    }
                ],
                ...
            }
        ],
        ...
    },
    ...
}

Did this page help you?