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, 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,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 |
---|---|---|---|
payorAccounts | 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. |
payorAccounts.accountType | Required | String enumeration Values are: - consignee - recipient - sender - third_party | The type of account to use for billing |
payorAccounts.carrierId | Conditional, dependent upon carrier | String enumeration Ex.: ups | The carrier ID as represented in the Shipium platform; you can find carrier ID values in Supported Carriers. If an account number is required by the carrier for your selected accountType , the carrierId is also required. |
payorAccounts .payorAccountCredentials .accountNumber | Conditional, dependent upon carrier | String | Your organization's carrier account number used to authenticate and connect to the carrier's APIs |
payorAccounts .payorAccountCredentials .accountCountryCode | Conditional, dependent upon carrier | String | The ISO 3166-1 country code associated with your organization's carrier account |
payorAccounts .payorAccountCredentials .accountPostalCode | Conditional, dependent upon carrier | String | A country-code-appropriate postal code associated with your organization's carrier account |
payorAccounts .payorAccountAddress | Conditional | Structure | The payor account address information. Note that this is required for some carriers like Midland for third_party accountType . |
payorAccounts .payorAccountAddress.name | Optional | String | The name of the shipment payor |
payorAccounts .payorAccountAddress .phoneNumber | Optional | String | The phone number of the shipment payor |
payorAccounts .payorAccountAddress .phoneNumberCountryCode | Optional | String | The phone number country code of the shipment payor |
payorAccounts .payorAccountAddress .emailAddress | Optional | String | The email address of the shipment payor |
payorAccounts .payorAccountAddress .company | Optional | String | The company associated with the shipment payor |
payorAccounts .payorAccountAddress .street1 | Optional | String | The first address line for the shipment payor |
payorAccounts .payorAccountAddress .street2 | Optional | String | The second address line for the shipment payor |
payorAccounts .payorAccountAddress.city | Optional | String | The city of the address for the shipment payor |
payorAccounts .payorAccountAddress.state | Optional | String | The two-letter postal abbreviation of the state for the shipment payor's address |
payorAccounts .payorAccountAddress .countryCode | Conditional, dependent upon carrier | String | The ISO 3166-1 country code for the shipment payor's address |
payorAccounts .payorAccountAddress .postalCode | Conditional, dependent upon carrier | String | A country-code-appropriate postal code for the shipment payor's address |
payorAccounts .payorAccountAddress .addressType | Optional | String enumeration Values are: - commercial - residential | The type of location for the shipment payor's address |
payorAccounts .payorAccountAddress .addressLineComponents | 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 . |
payorAccounts .registrationInformation .typeCode | Optional | String enumeration Values are: - VAT (value added tax)- EIN (employee identification number) | The registration number type code for the payor account |
payorAccounts .registrationInformation .registrationNumber | Optional | String Ex.: 12344509 | The registration number for the payor account |
payorAccounts .registrationInformation .issuerCountryCode | Optional | String | The ISO 3166-1 country code for payor account |
payorAccounts .billForShippingCost | Required | Booleantrue or false | If true , this indicates whether the payor should be billed for the cost of shipping the package. |
payorAccounts .billDutiesAndTaxes | Required | Booleantrue or false | If true , this indicates whether the payor should be billed for duties and taxes. |
Carrier-specific information for payors
DHL payor information
Payor type | DHL supports payor type | DHL requires payor account credentials |
---|---|---|
sender | Yes | Yes |
third_party | Yes | Yes |
consignee | Yes | Yes |
recipient | 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 |
---|---|---|
payorAccounts.accountType | String enumeration Values are: - consignee - recipient - sender - third_party | The type of account to use for billing |
payorAccounts.carrierId | String enumeration Ex.: dhl | The carrier ID as represented in the Shipium platform; you can find carrier ID values in Supported Carriers. |
payorAccounts .payorAccountCredentials .accountNumber | String | Your organization's carrier account number used to authenticate and connect to the carrier's APIs |
payorAccounts.payorAccountAddress .name | String | The name of the shipment payor |
payorAccounts.payorAccountAddress .company | String | The company associated with the shipment payor |
payorAccounts.payorAccountAddress .phoneNumber | String | The phone number of the shipment payor |
payorAccounts.payorAccountAddress .street1 | String | The first address line for the shipment payor |
payorAccounts.payorAccountAddress .street2 | String | The second address line for the shipment payor |
payorAccounts.payorAccountAddress .city | String | The city of the address for the shipment payor |
payorAccounts.payorAccountAddress .postalCode | String | A country-code-appropriate postal code for the shipment payor's address |
payorAccounts.payorAccountAddress .countryCode | String | The ISO 3166-1 country code for the shipment payor's address |
payorAccounts.billForShippingCost | Booleantrue or false | If true , this indicates whether the payor should be billed for the cost of shipping the package. |
payorAccounts.billDutiesAndTaxes | Booleantrue or false | If true , this indicates whether the payor should be billed for duties and taxes. |
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",
"carrierId": "dhl",
"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"
},
"billForShippingCost": true,
"billDutiesAndTaxes": true
}
]
},
....
}
FedEx payor information
Payor type | FedEx supports payor type | FedEx requires payor account credentials |
---|---|---|
sender | Yes | Yes |
third_party | Yes | Yes |
consignee | No | Not Applicable |
recipient | Yes | Yes |
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 |
---|---|---|
payorAccounts.accountType | String enumeration Values are: - recipient - sender - third_party | The type of account to use for billing |
payorAccounts.carrierId | String enumeration Ex.: fedex | The carrier ID as represented in the Shipium platform; you can find carrier ID values in Supported Carriers. |
payorAccounts .payorAccountCredentials .accountNumber | String | Your organization's carrier account number used to authenticate and connect to the carrier's APIs |
payorAccounts .payorAccountCredentials .accountCountryCode | String | The ISO 3166-1 country code associated with your organization's carrier account |
payorAccounts.payorAccountAddress .phoneNumber | String | The phone number of the shipment payor |
payorAccounts.payorAccountAddress .street1 | String | The first address line for the shipment payor |
payorAccounts.payorAccountAddress .street2 | String | The second address line for the shipment payor |
payorAccounts.payorAccountAddress .city | String | The city of the address for the shipment payor |
payorAccounts.payorAccountAddress .countryCode | String | The ISO 3166-1 country code for the shipment payor's address |
payorAccounts.billForShippingCost | Booleantrue or false | If true , this indicates whether the payor should be billed for the cost of shipping the package. |
payorAccounts.billDutiesAndTaxes | Booleantrue or false | If true , this indicates whether the payor should be billed for duties and taxes. |
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 |
---|---|---|
sender | Yes | No |
third_party | Yes | Yes ✳️ |
consignee | No | Not Applicable |
recipient | No | Not Applicable |
✳️ 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 |
---|---|---|---|
payorAccounts.accountType | Required for all payor types | String enumeration Values are: - sender - third_party | The type of account to use for billing |
payorAccounts .payorAccountCredentials .accountCountryCode | Required for third_party payor type; not required for sender | String | The ISO 3166-1 country code associated with your organization's carrier account |
payorAccounts .payorAccountCredentials .accountPostalCode | Required for third_party payor type; not required for sender | String | A country-code-appropriate postal code associated with your organization's carrier account |
payorAccounts.payorAccountAddress .name | Required for third_party payor type; not required for sender | String | The name of the shipment payor |
payorAccounts.payorAccountAddress .phoneNumber | Required for third_party payor type; not required for sender | String | The phone number of the shipment payor |
payorAccounts.payorAccountAddress .phoneNumberCountryCode | Required for third_party payor type; not required for sender | String | The phone number country code of the shipment payor |
payorAccounts.payorAccountAddress .emailAddress | Required for third_party payor type; not required for sender | String | The email address of the shipment payor |
payorAccounts.payorAccountAddress .company | Required for third_party payor type; not required for sender | String | The company associated with the shipment payor |
payorAccounts.payorAccountAddress .street1 | Required for third_party payor type; not required for sender | String | The first address line for the shipment payor |
payorAccounts.payorAccountAddress .street2 | Required for third_party payor type; not required for sender | String | The second address line for the shipment payor |
payorAccounts.payorAccountAddress .city | Required for third_party payor type; not required for sender | String | The city of the address for the shipment payor |
payorAccounts.payorAccountAddress .state | Required for third_party payor type; not required for sender | String | The two-letter postal abbreviation of the state for the shipment payor's address |
payorAccounts.payorAccountAddress .countryCode | Required for third_party payor type; not required for sender | String | The ISO 3166-1 country code for the shipment payor's address |
payorAccounts.payorAccountAddress .postalCode | Required for third_party payor type; not required for sender | String | A country-code-appropriate postal code for the shipment payor's address |
payorAccounts.billForShippingCost | Required for all payor types | Booleantrue or false | If true , this indicates whether the payor should be billed for the cost of shipping the package. |
payorAccounts.billDutiesAndTaxes | Required for all payor types | Booleantrue or false | If true , this indicates whether the payor should be billed for duties and taxes. |
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
}
],
}
}
UPS payor information
Payor type | UPS supports payor type | UPS requires payor account credentials |
---|---|---|
sender | Yes | Yes |
third_party | Yes | Yes |
consignee | Yes | Yes |
recipient | 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 |
---|---|---|---|
payorAccounts.accountType | Required for all payor types | String enumeration Values are: - consignee - recipient - sender - third_party | The type of account to use for billing |
payorAccounts.carrierId | Required for sender , recipient , and third_party payor types; not required for consignee | String enumeration Ex.: ups | The carrier ID as represented in the Shipium platform; you can find carrier ID values in Supported Carriers. |
payorAccounts .payorAccountCredentials .accountNumber | Required for sender , recipient , and third_party payor types; not required for consignee | String | Your organization's carrier account number used to authenticate and connect to the carrier's APIs |
payorAccounts .payorAccountCredentials .accountCountryCode | Required for third_party payor type; not required for consignee , sender , or recipient | String | The ISO 3166-1 country code associated with your organization's carrier account |
payorAccounts .payorAccountCredentials .accountPostalCode | Required for recipient and third_party payor types; not required for consignee or sender | String | A country-code-appropriate postal code associated with your organization's carrier account |
payorAccounts .payorAccountAddress .countryCode | Required for third_party payor type; not required for consignee , sender , or recipient | String | The ISO 3166-1 country code for the shipment payor's address |
payorAccounts .payorAccountAddress .postalCode | Required for recipient and third_party payor types; not required for consignee or sender | String | A country-code-appropriate postal code for the shipment payor's address |
payorAccounts .billForShippingCost | Required for all payor types | Booleantrue or false | If true , this indicates whether the payor should be billed for the cost of shipping the package. |
payorAccounts .billDutiesAndTaxes | Required for all payor types | Booleantrue or false | If true , this indicates whether the payor should be billed for duties and taxes. |
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",
"carrierId": "ups",
"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",
"carrierId": "ups",
"payorAccountCredentials": {
"accountNumber": "123456789",
"accountPostalCode": "98101"
},
"billForShippingCost": true,
"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",
"carrierId": "ups",
"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"
},
"billForShippingCost": true,
"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 |
---|---|---|
sender | Yes | Yes |
third_party | Yes | Yes |
consignee | Yes | Yes |
recipient | 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 |
---|---|---|---|
payorAccounts.accountType | Required for all payor types | String enumeration Values are: - consignee - recipient - sender - third_party | The type of account to use for billing |
payorAccounts.carrierId | Required for all payor types | String enumeration Ex.: usps | The carrier ID as represented in the Shipium platform; you can find carrier ID values in Supported Carriers. |
payorAccounts .payorAccountCredentials .accountNumber | Conditional | String | Your organization's carrier account number used to authenticate and connect to the carrier's APIs; you must provide either an accountNumber OR a permitNumber and permitPostalCode . |
payorAccounts .additionalCarrier SpecificInformation.usps .customerRegistrationId | Required for all payor types | String | USPS account Customer Reference/Registration ID |
payorAccounts .additionalCarrier SpecificInformation.usps .mailerId | Required for all payor types | String | USPS account Mailer ID |
payorAccounts .additionalCarrier SpecificInformation.usps .manifest | Required for all payor types | String | USPS account Mailer ID for manifesting |
payorAccounts .additionalCarrier SpecificInformation.usps .permitNumber | Conditional | String | USPS permit number; you must provide either an accountNumber OR a permitNumber and permitPostalCode . |
payorAccounts .additionalCarrier SpecificInformation.usps .permitPostalCode | Conditional | String | The ZIP code associated with your permit number; you must provide either an accountNumber OR a permitNumber and permitPostalCode . |
payorAccounts .billForShippingCost | Required for all payor types | Booleantrue or false | If true , this indicates whether the payor should be billed for the cost of shipping the package. |
payorAccounts .billDutiesAndTaxes | Required for all payor types | Booleantrue or false | If true , this indicates whether the payor should be billed for duties and taxes. |
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.
{
...
"shipmentParameters": {
"payorAccounts": [
{
"accountType": "consignee",
"carrierId": "usps",
"additionalCarrierSpecificInformation": {
"usps": {
"customerRegistrationId" : "123456789012345",
"mailerId" : "123456789",
"manifest" : "987654321",
"permitNumber" : "1111",
"permitPostalCode" : "43035"
},
"billForShippingCost": true,
"billDutiesAndTaxes": true
}
],
...
}
}
Resources
Your Shipium team member is available to help along the way. However, you might find these resources helpful:
Updated about 18 hours ago