Specifying Payors
Bill multiple payor accounts for the cost of different components of shipping a package.
About specifying payors
The Shipium system supports billing multiple payor accounts separately for costs associated with a shipment for carriers including DHL, FedEx, Midland, Purolator E-Ship, UPS, and USPS. Different carriers support different payor types and require varying data for each payor type. This document provides guidance for the most common carriers used by Shipium customers. Details on payor account credential information are included in the request fields table below, and carrier-specific information follows.
Specify payor details in calls to Shipium's APIs
If your organization needs to specify multiple payors using different billing account information in calls to Shipium's APIs, you can include the payorAccounts object in the shipmentParameters or multiParcelShipmentParameters of your call. Requirements differ by carrier and are included in the carrier sections that follow: DHL, FedEx, Midland, OnTrac, Purolator E-Ship, UPS, and USPS.
Account information included via API call in payorAccounts will override account credentials configured in the Shipium Console.
You should include one payorAccounts entry for each unique payor account and carrier across which you want to split shipping costs and/or duties and taxes.
Payor request details
The following table lists all required and optional fields for payor accounts. Conditional fields dependent upon carrier requirements are explained further in the carrier-specific guidance that follows. The request fields listed here relate to payor accounts only; other request fields are described in API-specific documentation.
Request field | Required/Optional | Field properties | Description |
|---|---|---|---|
| Required | An array of payor account information, representing the list of payor accounts associated with the shipment | Each account corresponds to a specific carrier and is used to determine the entity responsible for shipping charges when billing terms require a designated payor. If a selected carrier does not have a corresponding payor account in this list, standard billing configurations will apply. |
| Required | String enumeration
| The type of account to use for billing |
| Conditional | String enumeration | The carrier ID as represented in the Shipium platform; you can find carrier ID values in Supported Carriers. |
| Conditional, dependent upon carrier | String | Your organization's carrier account number used to authenticate and connect to the carrier's APIs |
| Conditional, dependent upon carrier | String | The ISO 3166-1 country code associated with your organization's carrier account |
| Conditional, dependent upon carrier | String | A country-code-appropriate postal code associated with your organization's carrier account |
| Conditional | Structure | The payor account address information. Note that this is required for some carriers like Midland for |
| Optional | String | The name of the shipment payor |
| Optional | String | The phone number of the shipment payor |
| Optional | String | The phone number country code of the shipment payor |
| Optional | String | The email address of the shipment payor |
| Optional | String | The company associated with the shipment payor |
| Optional | String | The first address line for the shipment payor |
| Optional | String | The second address line for the shipment payor |
| Optional | String | The city of the address for the shipment payor |
| Optional | String | The two-letter postal abbreviation of the state for the shipment payor's address |
| Conditional, dependent upon carrier | String | The ISO 3166-1 country code for the shipment payor's address |
| Conditional, dependent upon carrier | String | A country-code-appropriate postal code for the shipment payor's address |
| Optional | String enumeration
| The type of location for the shipment payor's address |
| Optional, but preferred for Mexican addresses | An array of address line components | The address line components for the payor account address, used for some international shipments; this optional address object is not included in the example JSON request. You can find out more about Mexican addresses in Non-U.S. Address Formats . |
| Optional | String enumeration
| The registration number type code for the payor account |
| Conditional (required for the | String | The registration number for the payor account |
| Optional | String | The ISO 3166-1 country code for payor account |
| Required | Boolean | If |
| Required | Boolean | If |
Carrier-specific information for payors
DHL payor information
Payor type | DHL supports payor type | DHL requires payor account credentials |
|---|---|---|
| Yes | Yes |
| Yes | Yes |
| Yes | Yes |
| Yes | Yes |
DHL required fields
The following fields must be included for DHL for any of the supported payor types: sender, third party, consignee, or recipient.
Request field | Field properties | Description |
|---|---|---|
| String enumeration
| The type of account to use for billing |
| Conditional: Required for | The carrier ID as represented in the Shipium platform; you can find carrier ID values in Supported Carriers. |
| String | Your organization's carrier account number used to authenticate and connect to the carrier's APIs |
| String | The name of the shipment payor |
| String | The company associated with the shipment payor |
| String | The phone number of the shipment payor |
| String | The first address line for the shipment payor |
| String | The second address line for the shipment payor |
| String | The city of the address for the shipment payor |
| String | A country-code-appropriate postal code for the shipment payor's address |
| String | The ISO 3166-1 country code for the shipment payor's address |
| String | The registration number for the payor account; this is required for the |
| Boolean | If |
| Boolean | If |
Sample request for consignee billing for DHL
This example shows the required payorAccounts information in JSON to be included via API call for consignee billing for DHL.
{
....
"shipmentParameters": {
"payorAccounts": [
{
"accountType": "consignee",
"payorAccountCredentials": {
"accountNumber": "123456789"
},
"payorAccountAddress": {
"name": "Wile E. Coyote",
"company": "ACME",
"phoneNumber": "888-555-1234",
"street1": "123 Main St.",
"street2": "Suite 42",
"city": "Albuquerque",
"postalCode": "87121",
"countryCode": "US"
},
"registrationInformation": {
"registrationNumber": "12344509"
},
"billForShippingCost": false,
"billDutiesAndTaxes": false
}
]
},
....
}FedEx payor information
Payor type | FedEx supports payor type | FedEx requires payor account credentials |
|---|---|---|
| Yes | Yes |
| Yes | Yes |
| No | Not Applicable |
| Yes ✳️ | Yes |
| Yes | Yes |
✳️ FedEx supports collect on delivery billing to a consignee for intra-Canada shipments via its FedEx Ground service method.
FedEx required fields
The following fields must be included for FedEx for any of the supported payor types: sender, third party, or recipient.
Request field | Field properties | Description |
|---|---|---|
| String enumeration
| The type of account to use for billing |
| Conditional: Required for | The carrier ID as represented in the Shipium platform; you can find carrier ID values in Supported Carriers. |
| String | Your organization's carrier account number used to authenticate and connect to the carrier's APIs |
| String | The ISO 3166-1 country code associated with your organization's carrier account |
| String | The phone number of the shipment payor |
| String | The first address line for the shipment payor |
| String | The second address line for the shipment payor |
| String | The city of the address for the shipment payor |
| String | The ISO 3166-1 country code for the shipment payor's address |
| Boolean | If |
| Boolean | If |
Sample request for recipient billing for FedEx
This example shows the required payorAccounts information in JSON to be included via API call for recipient billing for FedEx.
{
....
"shipmentParameters": {
"payorAccounts": [
{
"accountType": "recipient",
"carrierId": "fedex",
"payorAccountCredentials": {
"accountNumber": "123456789",
"accountCountryCode": "US"
},
"payorAccountAddress": {
"phoneNumber": "8312776565",
"street1": "123 Main St.",
"street2": "Suite 42",
"city": "Albuquerque",
"countryCode": "US"
},
"billForShippingCost": true,
"billDutiesAndTaxes": true
}
]
},
....
}Midland payor information
Payor type | Midland supports payor type | Midland requires payor account credentials |
|---|---|---|
| Yes | No |
| Yes | Yes ✳️ |
| No | Not Applicable |
| No | Not Applicable |
| Yes | Yes |
✳️ Midland does not require an account number for third party billing but does require third party address and contact information.
Midland required fields
The following fields must be included for Midland, depending on the supported payor type: sender or third party.
Request field | Required/Optional | Field properties | Description |
|---|---|---|---|
| Required for all payor types | String enumeration
| The type of account to use for billing |
| Required for | String enumeration | The carrier ID as represented in the Shipium platform; you can find carrier ID values in Supported Carriers . |
| Required for | String | The ISO 3166-1 country code associated with your organization's carrier account |
| Required for | String | A country-code-appropriate postal code associated with your organization's carrier account |
| Required for | String | The name of the shipment payor |
| Required for | String | The phone number of the shipment payor |
| Required for | String | The phone number country code of the shipment payor |
| Required for | String | The email address of the shipment payor |
| Required for | String | The company associated with the shipment payor |
| Required for | String | The first address line for the shipment payor |
| Required for | String | The second address line for the shipment payor |
| Required for | String | The city of the address for the shipment payor |
| Required for | String | The two-letter postal abbreviation of the state for the shipment payor's address |
| Required for | String | The ISO 3166-1 country code for the shipment payor's address |
| Required for | String | A country-code-appropriate postal code for the shipment payor's address |
| Required for all payor types | Boolean | If |
| Required for all payor types | Boolean | If |
Sample request for sender billing for Midland
This example shows the required payorAccounts information in JSON to be included via API call for sender billing for Midland.
{
"shipmentParameters": {
"payorAccounts": [
{
"accountType": "sender",
"billForShippingCost": true,
"billDutiesAndTaxes": true
}
]
}
}OnTrac payor information
Payor type | OnTrac supports payor type | OnTrac requires payor account credentials |
|---|---|---|
| Yes | Yes |
| Yes | Yes |
| Yes | Yes |
| Yes | Yes |
OnTrac required fields
The following fields must be included for OnTrac for any of the supported payor types: sender, third party, consignee, or recipient.
Request field | Field properties | Description |
|---|---|---|
| String enumeration
| The type of account to use for billing |
| Conditional: Required for | The carrier ID as represented in the Shipium platform; you can find carrier ID values in Supported Carriers. |
| String | Your organization's carrier account number used to authenticate and connect to the carrier's APIs |
| Boolean | If |
| Boolean | If |
Sample request for third party billing for OnTrac
This example shows the required payorAccounts information in JSON to be included via API call for third party billing for OnTrac.
{
....
"shipmentParameters": {
"payorAccounts": [
{
"accountType": "third_party",
"carrierId": "ontrac",
"payorAccountCredentials": {
"accountNumber": "123456789"
},
"billForShippingCost": true,
"billDutiesAndTaxes": true
}
]
},
....
}Purolator E-Ship payor information
Payor type | Purolator E-Ship supports payor type | Purolator E-Ship requires payor account credentials |
|---|---|---|
| Yes | Yes |
| Yes | Yes |
| No | Not Applicable |
| Yes | Yes |
Purolator E-Ship required fields
The following fields must be included for Purolator E-Ship for any of the supported payor types: sender, third party, consignee, or recipient.
Request field | Field properties | Description |
|---|---|---|
| String enumeration
| The type of account to use for billing |
| Conditional: Required for | The carrier ID as represented in the Shipium platform; you can find carrier ID values in Supported Carriers. |
| String | Your organization's carrier account number used to authenticate and connect to the carrier's APIs |
| Boolean | If |
| Boolean | If |
Sample request for third party billing for Purolator E-Ship
This example shows the payorAccounts information in JSON to be included via API call for third party billing for Purolator E-Ship.
{
....
"shipmentParameters": {
"payorAccounts": [
{
"accountType": "third_party",
"carrierId": "purolator",
"payorAccountCredentials": {
"accountNumber": "123456789"
},
"billForShippingCost": true,
"billDutiesAndTaxes": true
}
]
},
....
}UPS payor information
Payor type | UPS supports payor type | UPS requires payor account credentials |
|---|---|---|
| Yes | Yes |
| Yes | Yes |
| Yes | Yes |
| Yes | Yes |
UPS required fields
The following fields must be included for UPS for any of the supported payor types: sender, third party, consignee, or recipient.
Request field | Required/Optional | Field properties | Description |
|---|---|---|---|
| Required for all payor types | String enumeration
| The type of account to use for billing |
| Required for | String enumeration | The carrier ID as represented in the Shipium platform; you can find carrier ID values in Supported Carriers. |
| Required for | String | Your organization's carrier account number used to authenticate and connect to the carrier's APIs |
| Required for | String | The ISO 3166-1 country code associated with your organization's carrier account |
| Required for | String | A country-code-appropriate postal code associated with your organization's carrier account |
| Required for | String | The ISO 3166-1 country code for the shipment payor's address |
| Required for | String | A country-code-appropriate postal code for the shipment payor's address |
| Required for | String | The registration number for the payor account |
| Required for all payor types | Boolean | If |
| Required for all payor types | Boolean | If |
Sample request for recipient billing for UPS
This example shows the payorAccounts information in JSON to be included via API call for billing for a recipient for UPS.
{
....
"shipmentParameters": {
"payorAccounts": [
{
"accountType": "recipient",
"payorAccountCredentials": {
"accountNumber": "123456789",
"accountPostalCode": "98101"
},
"payorAccountAddress": {
"postalCode": "87121"
},
"billForShippingCost": true,
"billDutiesAndTaxes": true
}
]
},
....
}Sample request for consignee billing for UPS
This example shows the required payorAccounts information as well as optional fields in JSON to be included via API call for billing for a consignee for UPS.
{
"currencyCode": "usd",
"generateLabel": false,
"shipmentParameters": {
"includePackagesArray": true,
"shippedDateTime": "2023-09-06T18:30:55.558Z",
"orderedDateTime": "2022-04-07T18:30:55.558Z",
"testMode": true,
"destinationAddress": {
"countryCode": "US",
"postalCode": "87121",
"addressType": "commercial",
"city": "Albuquerque",
"name": "Wile E. Coyote",
"phoneNumber": "888-555-1234",
"state": "NM",
"street1": "123 Main St.",
"street2": "Suite 42"
},
"shipFromAddress": {
"countryCode": "US",
"postalCode": "17901",
"city": "Pottsville",
"state": "PA",
"street1": "401 N. Centre St."
},
"returnToAddress": {
"name": "Rod Runner",
"phoneNumber": "865-433-9999",
"phoneNumberCountryCode": "+2",
"emailAddress": "[email protected]",
"company": "ACME",
"street1": "456 Main St.",
"street2": "Suite 8",
"city": "Albuquerque",
"state": "NM",
"countryCode": "US",
"postalCode": "87121",
"addressType": "commercial"
},
"payorAccounts": [
{
"accountType": "consignee",
"payorAccountCredentials": {
"accountNumber": "123456789",
"accountPostalCode": "98101"
},
"registrationInformation": {
"registrationNumber": "12344509"
},
"billForShippingCost": false,
"billDutiesAndTaxes": false
}
],
"orderItemQuantities": [
{
"productId": "ET-14-4000",
"quantity": 2
}
],
"packagingType": {
"packagingMaterial": "box",
"packagingWeight": {
"weight": 13,
"weightUnit": "oz"
},
"linearDimensions": {
"length": 15,
"width": 10,
"height": 5,
"linearUnit": "in"
}
},
"totalWeight": {
"weight": 13,
"weightUnit": "oz"
}
}
}Sample response for consignee billing for UPS
"shipiumShipmentId": "3185ae04-d465-408a-9ae2-a98c7499e6bc",
"orderedDateTime": "2022-04-07T18:30:55.558Z",
"shippedDateTime": "2023-09-06T18:30:55.558Z",
"ignoreUpgradeSpendLimits": false,
"fulfillmentType": "customer",
"packages": [
{
"orderItemQuantities": [
{
"productId": "ET-14-4000",
"quantity": 2,
"productDetails": [],
"hazmat": false
}
],
"packagingType": {
"packagingMaterial": "box",
"linearDimensions": {
"linearUnit": "in",
"length": 15.0,
"width": 10.0,
"height": 5.0
},
"packagingWeight": {
"weightUnit": "oz",
"weight": 13.0
}
},
"totalWeight": {
"weightUnit": "oz",
"weight": 13.0
}
}
],
"orderItemQuantities": [
{
"productId": "ET-14-4000",
"quantity": 2,
"productDetails": [],
"hazmat": false
}
],
"destinationAddress": {
"name": "Wile E. Coyote",
"phoneNumber": "888-555-1234",
"street1": "123 Main St.",
"street2": "Suite 42",
"city": "Albuquerque",
"state": "NM",
"countryCode": "US",
"postalCode": "87121",
"addressType": "commercial"
},
"shipFromAddress": {
"name": "Ro Drunner",
"phoneNumber": "5555555555",
"emailAddress": "[email protected]",
"company": "Sell It",
"street1": "401 N. Centre St.",
"city": "Pottsville",
"state": "PA",
"countryCode": "US",
"postalCode": "17901"
},
"returnToAddress": {
"name": "Rod Runner",
"phoneNumber": "865-433-9999",
"phoneNumberCountryCode": "+2",
"emailAddress": "[email protected]",
"company": "ACME",
"street1": "456 Main St.",
"street2": "Suite 8",
"city": "Albuquerque",
"state": "NM",
"countryCode": "US",
"postalCode": "87121",
"addressType": "commercial"
},
"fulfillmentContextId": "1f19ca28-9798-42b2-9e8c-f9c3a72c9bab",
"requestFulfillmentContextIds": [],
"originId": "5a1ea728-4ba2-4cc6-892c-1f122f350775",
"packagingType": {
"packagingMaterial": "box",
"linearDimensions": {
"linearUnit": "in",
"length": 15.0,
"width": 10.0,
"height": 5.0
},
"packagingWeight": {
"weightUnit": "oz",
"weight": 13.0
}
},
"totalWeight": {
"weightUnit": "oz",
"weight": 13.0
},
"payorAccounts": [
{
"accountType": "consignee",
"payorAccountCredentials": {
"accountNumber": "123456789",
"accountPostalCode": "98101"
},
"payorAccountAddress": {
"name": "Rod Runner",
"phoneNumber": "8654339999",
"phoneNumberCountryCode": "+2",
"emailAddress": "[email protected]",
"company": "ACME",
"street1": "456 Main St.",
"street2": "Suite 8",
"city": "Albuquerque",
"state": "NM",
"countryCode": "US",
"postalCode": "87121",
"addressType": "commercial"
},
"registrationInformation": {
"registrationNumber": "12344509"
},
"billForShippingCost": false,
"billDutiesAndTaxes": false
}
],
"shipmentTags": [],
"carrierSelection": {
"status": "success",
"statusDetails": "success",
"carrierSelectionId": "911b488c-c620-4663-a554-bf9628e7ff43",
"shipiumShipmentId": "3185ae04-d465-408a-9ae2-a98c7499e6bc",
"partnerId": "76abb3d4-8990-4f80-aa13-4c2007cb852a",
"carrierAccountId": "7b811704-9a16-4d3b-b849-43c7279415ac",
"serviceMethodIdentifier": "1f19ca28-9798-42b2-9e8c-f9c3a72c9bab:dXBzbWktcGFyY2VsLXNlbGVjdC1zZXJ2aWNlLW1ldGhvZDo6NDNjYTI3ZDctZmUzNi00YjI1LTk4MDAtYTdmMTE2ZDIyMTQxOjdiODExNzA0LTlhMTYtNGQzYi1iODQ5LTQzYzcyNzk0MTVhYzpmZTFlMjg1Mi1kNTBiLTQ5OGQtOGIxMC05MGJiMWM5ODFjZTA6dXBzbWk6NWExZWE3MjgtNGJhMi00Y2M2LTg5MmMtMWYxMjJmMzUwNzc1Ojo",
"carrier": "upsmi",
"carrierServiceMethodId": "upsmi-parcel-select-service-method",
"serviceMethodName": "UPS Mail Innovations Parcel Select",
"totalCost": 1.0,
"carrierCompareCost": 1.0,
"carrierInvoiceCost": 1.0,
"operationalCost": 1.0,
"thirdPartyBilling": false,
"carrierSelectionDateTime": "2024-03-25T19:44:22.232Z"
},
"saturdayDelivery": false,
"deliverySignatureOption": "None",
"forceThirdPartyBilling": false,
"createdWithVersion": "v2",
"multiParcel": false,
"testMode": true
}USPS payor information
Payor type | USPS supports payor type | USPS requires payor account credentials |
|---|---|---|
| Yes | Yes |
| Yes | Yes |
| Yes | Yes |
| Yes | Yes |
USPS required fields
USPS provides two different mechanisms to identify account information for payors. The USPS Direct CRID, USPS Direct MID, and USPS Direct Manifest MID are always required for either mechanism. After providing these three required values, you also will provide either the USPS Direct Account Number or the USPS Direct Permit Number and USPS Direct Permit ZIP.
The following fields must be included for USPS, depending on the supported payor type: sender, third party, consignee, or recipient.
Request field | Required/Optional | Field properties | Description |
|---|---|---|---|
| Required for all payor types | String enumeration
| The type of account to use for billing |
| Required for | String enumeration | The carrier ID as represented in the Shipium platform; you can find carrier ID values in Supported Carriers. |
| Conditional | String | Your organization's carrier account number used to authenticate and connect to the carrier's APIs; you must provide either an |
| Required for | String | The registration number for the payor account |
| Required for all payor types | String | USPS account Customer Reference/Registration ID |
| Required for all payor types | String | USPS account Mailer ID |
| Required for all payor types | String | USPS account Mailer ID for manifesting |
| Conditional | String | USPS permit number; you must provide either an |
| Conditional | String | The ZIP code associated with your permit number; you must provide either an |
| Required for all payor types | Boolean | If |
| Required for all payor types | Boolean | If |
Sample request for consignee billing for USPS
This example shows the required payorAccounts information in JSON to be included via API call for billing for a consignee for USPS using the permit number and permit ZIP code.
{
"accountType": "consignee",
"additionalCarrierSpecificInformation": {
"usps": {
"customerRegistrationId": "123456789012345",
"mailerId": "123456789",
"manifest": "987654321",
"permitNumber": "1111",
"permitPostalCode": "43035"
}
},
"registrationInformation": {
"registrationNumber": "12344509"
},
"billForShippingCost": false,
"billDutiesAndTaxes": false
}Providing tax and registration numbers for payors
When specifying payor accounts for international shipments, you can provide tax identification and registration information for any party involved in the shipment using the registrationInformation object within payorAccounts. This is the primary method for providing tax identifiers such as EORI (Economic Operators Registration and Identification) numbers for consignees, importers of record (IORs), and other entities involved in international customs clearance.
What is registration information?
The registrationInformation object allows you to specify tax identification and registration numbers for entities other than the shipper. This capability is particularly important for international customs clearance, especially when shipping to or from the European Union, United Kingdom, and other countries that require EORI numbers or similar tax identifiers.
Unlike your organization's tax identification number (which is specified in customsInfo.taxIdentificationNumber), the registrationInformation object is used to provide tax identification for other parties in the shipment - such as the consignee, importer of record, or third-party payor.
When to use registration information
Use the registrationInformation object within payorAccounts when:
- International shipments require EORI numbers. Many countries, particularly in the EU and UK, require EORI numbers for customs clearance. The consignee or importer of record must provide their EORI number for the shipment to clear customs.
- The consignee or importer of record has a separate tax ID. When the entity receiving the shipment or acting as the importer of record is different from the shipper and needs to provide their own tax identification for customs purposes.
- Customs clearance requires registration information for non-shipper entities. Various countries have specific tax identification or registration requirements for parties other than the shipper involved in international trade.
- Multiple parties are involved in customs clearance. Complex international shipping arrangements where brokers, importers of record, or other third parties need to provide their tax identification information
Understanding tax ID methods in Shipium
Shipium's API provides multiple methods for tax identification information, each serving a distinct purpose.
| Method | Location | Entity | Use case |
|---|---|---|---|
| Primary (Recommended) | payorAccounts.registrationInformation | Any payor (consignee, IOR, third party) | Providing EORI, VAT, or other tax identifiers for entities other than the shipper |
| Sender's Tax ID | customsInfo.taxIdentificationNumber | Shipper/Exporter only | Your organization's tax ID for export compliance |
| Alternative | customsInfo.importerOfRecord or customsInfo.brokers | IOR or Broker | Alternative method for specifying IOR/broker tax IDs |
The payorAccounts.registrationInformation method is recommended for most use cases, particularly for EORI numbers, as it provides the clearest association between the party and their tax identification.
registrationInformation object structure
The registrationInformation object is included within the payorAccounts array and contains the following fields:
typeCode. String. Required. The type of registration number being provided; use"EOR"for EORI numbers. Use"EIN"for Employer Identification Numbers. Additional type codes may be supported for other tax identifier types.registrationNumber. String. Required. The actual tax identification or registration number; format depends on the issuing country's requirements. For example, UK EORI numbers follow the format"GB123456789000"while other countries have different formats.issuerCountryCode. String. Conditional. The ISO 3166-1 alpha-2 country code of the country that issued the registration number. This field is required for DHL Express and optional for other carriers such as UPS and FedEx. This must be a valid 2-character ISO country code (e.g.,"GB"for United Kingdom,"DE"for Germany,"US"for United States).
API examples
Example 1: International shipment with EORI for UPS
This example shows an international shipment where the consignee has an EORI number that must be provided for customs clearance. The issuerCountryCode is optional for UPS.
{
"shipmentParameters": {
"partnerShipmentId": "INTL_SHIPMENT_001",
"shippedDateTime": "2025-11-04T09:12:33.123456Z",
"destinationAddress": {
"name": "Jane Smith",
"company": "UK Retail Ltd",
"street1": "45 Commerce Street",
"city": "London",
"postalCode": "SW1A 1AA",
"countryCode": "GB",
"addressType": "commercial"
},
"customsInfo": {
"taxIdentificationNumber": "12-3456789",
"totalCustomsValue": 250.00,
"totalCustomsValueCurrency": "usd",
"customsDescription": "Electronics components",
"reasonForExport": "sale",
"incoterm": "ddp"
},
"payorAccounts": [
{
"accountType": "consignee",
"payorAccountAddress": {
"name": "Jane Smith",
"company": "UK Retail Ltd",
"street1": "45 Commerce Street",
"city": "London",
"postalCode": "SW1A 1AA",
"countryCode": "GB"
},
"registrationInformation": {
"typeCode": "EOR",
"registrationNumber": "GB123456789000"
}
}
]
}
}Example 2: International shipment with EORI for DHL Express
When shipping with DHL Express, the issuerCountryCode field is required and must specify the ISO country code that issued the EORI number. In this example, the payorAccountCredentials and payorAccountAddress fields are not included. When these fields are omitted, Shipium will use the carrier account configured in your fulfillment context in the Shipium Console.
{
"shipmentParameters": {
"partnerShipmentId": "INTL_SHIPMENT_002",
"shippedDateTime": "2025-11-04T09:12:33.123456Z",
"destinationAddress": {
"name": "Hans Mueller",
"company": "German Imports GmbH",
"street1": "Hauptstrasse 123",
"city": "Berlin",
"postalCode": "10115",
"countryCode": "DE",
"addressType": "commercial"
},
"customsInfo": {
"taxIdentificationNumber": "12-3456789",
"totalCustomsValue": 500.00,
"totalCustomsValueCurrency": "usd",
"customsDescription": "Industrial equipment",
"reasonForExport": "sale",
"incoterm": "ddp"
},
"payorAccounts": [
{
"accountType": "consignee",
"registrationInformation": {
"typeCode": "EOR",
"issuerCountryCode": "DE",
"registrationNumber": "DE987654321000"
}
}
]
}
}Example 3: Multi-parcel international shipment with EORI
For multi-parcel shipments, the registrationInformation object is included in the multiParcelShipmentParameters.
{
"multiParcelShipmentParameters": {
"partnerShipmentId": "MULTIPARCEL_INTL_001",
"shippedDateTime": "2025-11-04T09:12:33.123456Z",
"destinationAddress": {
"name": "Marie Dubois",
"company": "French Distribution SA",
"street1": "12 Rue du Commerce",
"city": "Paris",
"postalCode": "75001",
"countryCode": "FR",
"addressType": "commercial"
},
"customsInfo": {
"taxIdentificationNumber": "12-3456789",
"totalCustomsValue": 1200.00,
"totalCustomsValueCurrency": "usd"
},
"payorAccounts": [
{
"accountType": "consignee",
"registrationInformation": {
"typeCode": "EOR",
"issuerCountryCode": "FR",
"registrationNumber": "FR12345678900"
}
}
],
"packages": [
{
"weight": 15,
"weightUnit": "lb",
"dimensions": {
"length": 12,
"width": 10,
"height": 8,
"dimensionUnit": "in"
}
},
{
"weight": 20,
"weightUnit": "lb",
"dimensions": {
"length": 14,
"width": 12,
"height": 10,
"dimensionUnit": "in"
}
}
]
}
}Carrier-specific requirements for international shipments
Different carriers have varying requirements for tax identification and registration information in international customs clearance:
- UPS International
- Supports EORI numbers via
registrationInformationobject - The
issuerCountryCodefield is optional. - EORI information will appear on UPS commercial invoices for customs clearance.
- Compatible with UPS Worldwide Express, UPS Worldwide Expedited, and other UPS international service methods
- Supports EORI numbers via
- DHL Express
- Supports EORI numbers via
registrationInformationobject - The
issuerCountryCodefield is required for DHL Express shipments. - DHL Express uses this information for customs clearance in destination countries.
- Particularly important for shipments to and from European Union countries
- Supports EORI numbers via
- FedEx International
- Supports EORI numbers via
registrationInformationobject - The
issuerCountryCodefield is optional. - EORI information appears on FedEx international shipping documents.
- Supports EORI numbers via
Contact your Implementation or Customer Success team member to confirm carrier-specific formatting requirements for your destination countries.
Common international shipping scenarios
- Shipping to EU Countries with EORI Requirements
When shipping to European Union member countries, the consignee typically needs an EORI number for customs clearance. Include the EORI number inregistrationInformationwith the appropriateissuerCountryCodefor the destination country. - Shipping to UK Post-Brexit
United Kingdom EORI numbers are now distinct from EU EORI numbers. Use country code"GB"for UK EORI numbers, and ensure you have the correct EORI format for post-Brexit shipments. - Delivered Duty Paid (DDP) Shipments
For DDP incoterm shipments where your organization pays duties and taxes, you may still need to provide the consignee's EORI number for customs clearance purposes, even though you're responsible for payment. - Using Customs Brokers
When using a customs broker, you may need to provide the broker's tax identification information in addition to the consignee's information. The Broker & Importer of Record documentation provides details on designating brokers.
Account number requirements
When using the payorAccounts object with registrationInformation, you have flexibility in providing account credentials:
- With explicit account number. Include
payorAccountCredentials.accountNumberto specify a particular carrier account for billing. This is useful when billing a specific third-party account for the international shipment. - Without explicit account number. Omit the
payorAccountCredentialsobject entirely, and Shipium will use the carrier account configured in your fulfillment context in the Shipium Console. This simplifies API calls when you're not using third-party billing but still need to provide registration information for customs.
Example with account number
"payorAccounts": [
{
"accountType": "consignee",
"payorAccountCredentials": {
"accountNumber": "987654321"
},
"registrationInformation": {
"typeCode": "EOR",
"registrationNumber": "GB123456789000"
}
}
]Example without account number (uses Console configuration)
"payorAccounts": [
{
"accountType": "consignee",
"registrationInformation": {
"typeCode": "EOR",
"issuerCountryCode": "GB",
"registrationNumber": "GB123456789000"
}
}
]Related documentation
For additional information about international shipping and customs requirements, see:
- Tax Identification Number. Your organization's tax ID as the shipper/exporter
- Customs Info for Shipments. General customs information and fields
- Broker & Importer of Record. Designating brokers and importers of record
- Third Party Billing. Console configuration for third-party billing accounts
- Multi-Parcel Shipments. Multi-parcel shipping with international shipments
Resources
Your Shipium team member is available to help along the way. However, you might find these resources helpful:
Updated 4 days ago
