FedEx Migration FAQ
Instructions and common questions about the FedEx SOAP to REST migration.
Overview
FedEx has launched its RESTful APIs to provide a modernized customer experience. FedEx Web Services (SOAP-based) is now in development containment, meaning all new features and enhancements will only be available in RESTful APIs. This FAQ will help guide you through the migration process.
There is no additional fee to be payed by customers migrating from FedEx Shipmate to the Multi-Carrier package.
We are continuously updating this guide with more information, questions, and known issues.
Install the latest version of the Multi-Carrier package for sandbox or production.
Why should you upgrade?
Increased Speed: The FedEx REST infrastructure is optimized for performance, requiring less bandwidth and improving responsiveness.
Additional Services: New FedEx products and features will be available exclusively on the RESTful APIs.
Enhanced Security: The addition of OAuth authentication improves data protection and provides better control over account access
What to expect?
The migration process depends on how you use FedEx through Zenkraft. As a carrier integrator, Zenkraft will handle much of the technical transition in the background and provide detailed, tailored instructions for customers.
- This FAQ page will be updated as more details become available.
- Our Customer Success team will proactively assist customers throughout the migration process.
Who needs to be involved?
If your business integrates directly with the FedEx API, Salesforce Commerce Cloud (SFCC) cartridge, or the Zenkraft Salesforce (Multi-Carrier or Shipmate) application, a member of your internal technical or IT team will likely need to be involved.
What is required for the authentication process?
For the new FedEx authentication process you will need:
- Your FedEx account number(s)
- Invoice details from the last 90 days
- Identify the designated contact who can provide this information
When does this need to be done?
FedEx has set a migration deadline of 30 June 2025. We encourage customers to prioritize this transition to avoid disruptions. Zenkraft will be available to assist throughout the process.
How do I migrate?
Migration instructions are being finalized. Currently, the Customer Success team is reaching out to customers using the Zenkraft API. Migration steps for the Zenkraft Salesforce (Multi-Carrier, Shipmate) application are in the final stages of development and testing. Updates will be provided as they become available.
Please note that Dangerous Goods and HazMat services are currently NOT available with the new integration. We are working with FedEx to receive the certification as soon as possible.
For any questions or assistance, please reach out to our support team.
For step-by-step migration instructions follow the below steps.
Migration steps for FedEx Shipmate users
Here you can find a detailed step by step guide of migrating from FedEx Shipmate to FedEx REST in Multi-Carrier.
Please note that Dangerous Goods and HazMat services are currently NOT available with the new integration. We are working with FedEx to receive the certification as soon as possible.
Important notes about licensing
There is no additional fee to be payed by customers migrating from FedEx Shipmate to the Multi-Carrier package.
When the Multi-Carrier package is installed by default it will be in Trial mode. The Zenkraft Support team is updating these licenses to be aligned with our customers' contract details and expiration dates. If you still see your package in Trial mode 6 days after installing it please create a case for our support team.
1. Upgrade the FedEx Shipmate package to version 4.86+
You can find here the sandbox or production install links for v4.86 .
2. Install or upgrade the Multi-Carrier package to version 1.134+
You can find the install link of the latest package under the Overview section of this page.
3. Install or upgrade the Migration Toolkit to 0.16+
You can find here the sandbox
or production
install links for v0.16.
If you have any of the previous versions installed please uninstall them before installing v0.16+.
4. Migrate your Shipmate Preferences
FedEx Shipmate preferences can be migrated directly into the Multi-Carrier app.
IMPORTANT NOTES:
Once a preference is migrated it can NOT be reverted.
- Navigate to the Bringg Migration object in Migration Toolkit
- Click on the Migrate Single Carrier Preferences button
- Select the preference(s) you want to migrate
- Click on the Migrate Preferences button
- Once completed you will see a 'Success' message and your preference will now be located under Shipping Preferences
- To finish the migration to FedEX REST proceed with Step 1 and Step 3 of Migrate to Multi-Carrier.
5. Recreate the Custom Address Source(s)
Due to the limited functionalities of the FedEx Custom Address Source compared to the Multi-Carrier Custom Address Source it is not possible to migrate then but need to be recreated instead. To create a CAS in the Muli-Carrier follow the Custom Address Source guide.
6. Migrate Historic Data
It is possible to save historic data from the Shipmate app.
NOTE: Before migrating historic data make sure to replicate/create all custom fields on the Multi-Carrier Shipment object the same as the FedEx Shipment object (i.e. lookup relationships).
- Navigate to the 'Bringg Migration' object
- Click on the 'Create Job' button
- Fill in the Description and Multi Carrier Preference fields
- Fill the FedEx Preference filed if you want to migrate all shipments from the selected preference
- Fill in the Filters field if you want to include any filtering (eg: Campaign__c != NULL)
- Uncheck the relevant checkboxes if you do not want to migrate related files, packages, or products
- Add custom fields by pressing the Add button and selecting the fields both under From Single Carrier and To Multi Carrier. These will be the API names of the fields on the FedEx Shipment and the Multi-Carrier Shipment objects.
- Click on Start Migration.
- Wait for the migration to finish then confirm all data has been migrated to the Multi-Carrier Shipment object.



For any questions or assistance please create a case for our support team. For ease of support you can also schedule a call.
Migration steps for Multi-Carrier users using 'FedEx'
Here you can find a detailed step by step guide of migrating from FedEx to
FedEx REST.
If you are using the FedEx (API) integration please refer to the FedEx (API)
section of this guide.
Please note that Dangerous Goods and HazMat services are currently NOT available with the new integration. We are working with FedEx to receive the certification as soon as possible.
1. Get your oAuth credentials
With the new FedEx API accounts can be authenticated in two ways: by invoice or by PIN.
We recommend using the invoice method.
Authenticate with an invoice
To authenticate using an invoice you will need:
- Your FedEx account number(s)
- Invoice details from the last 90 days
- Identify the designated contact who can provide this information
Authenticate using a PIN
To authenticate with a PIN you will need:
- Identify the contact phone number/email under the FedEx account
- Have access to this phone number/email OR ask the person it belongs to assist you
2. Install or upgrade the Multi-Carrier package to version 1.134+
You can find the install link of the latest package under the Overview section of this page.
3. Migrate your Shipping Preferences
IMPORTANT NOTES:
- Each shipping preference will need to be migrated individually.
- Once a preference is migrated it can NOT be reverted.
- Before starting the authorization process make sure that all popup blockers are DISABLED.
- Do NOT start migrating without the appropriate details OR access to the PIN phone/email.
- Once a shipping preference is migrated the letterhead and signature images will need to re-uploaded
To migrate a shipping preference follow the below steps:
- Navigate to the Migration object in Multi-Carrier
- Go to the FedEx Migration: Preferences sub-tab
- Click on the Migrate button next to the preference
- A new tab will open with the selected shipping preference. Click on Migrate Preference to proceed or on Dismiss to cancel
- Scroll to the FedEx Authentication section and select the authentication method
a) If you are using and invoice enter the details in the relevant fields.
b) If you are using the PIN validation you need to provide the PIN in the modal - Scroll down to the FedEx End User License Agreement and once read, click on the toggle to accept it
- Click on the Migrate button at the top of the screen
Reupload the Letterhead and Signature images
Once a shipping preference is migrated the letterhead and signature images will need to re-uploaded.
4. Custom Address Source
The FedEx v2 API accepts the same values as the old integration so the Custom Address Source can be used with the same configuration.
For any questions or assistance please create a case for our support team. For ease of support you can also schedule a call.
Migration steps for Multi-Carrier users using 'FedEx (API)'
Here you can find a detailed step by step guide of migrating from FedEx (API) to
FedEx REST.
If you are using the FedEx integration please refer to the FedEx
section of this guide.
Please note that Dangerous Goods and HazMat services are currently NOT available with the new integration. We are working with FedEx to receive the certification as soon as possible.
1. Get your oAuth credentials
With the new FedEx API accounts can be authenticated in two ways: by invoice or by PIN.
We recommend using the invoice method.
Authenticate with an invoice
To authenticate using an invoice you will need:
- Your FedEx account number(s)
- Invoice details from the last 90 days
- Identify the designated contact who can provide this information
Authenticate using a PIN
To authenticate with a PIN you will need:
- Identify the contact phone number/email under the FedEx account
- Have access to this phone number/email OR ask the person it belongs to assist you
2. Install or upgrade the Multi-Carrier package to version 1.134+
You can find the install link of the latest package under the Overview section of this page.
3. Migrate your Shipping Preferences
IMPORTANT NOTES: "FedEx (API)" preferences cannot be migrated. Instead they will need to be
recreated
as a new shipping preference.
Once the preference is created make sure to update any custom fields and Custom Address Source mappings
that reference the
Preference Name or its Salesforce ID.
4. Custom Address Source
In general, the Fedex v2 API uses the same values as the old integration, however the carrier specific mappings need to be updated to the same "FedEx" options.
You can find an example below:

For any questions or assistance please create a case for our support team. For ease of support you can also schedule a call.
Migration steps for Commerce Cloud customers
In this section you can find the steps for updating your Salesforce Commerce Cloud environment.
1. Migrate your shipping account
Follow the steps in the migration steps for API only customers section of this guide for instructions on migrating the shipping account.
2. Update the carrier slug in SFCC
Navigate to Custom Preferences then update the carrier values to fedex_v2 in the following sections:
- Zenkraft General - Change the value of the zenkraftCarrier
- Zenkraft Returns - Change the value of the Returns Carrier ID
- Zenkraft Advanced Configuration - The Advanced JSON may have multiple references to FedEx so make sure all of them are updated
NOTE: If changing the carrier slug would cause issues or if you are running into errors please
create a case for our support team. For ease of support you can also
schedule a
call.
Migration steps for API only customers
In this section you can find the steps to migrating an existing shipping account and creating a new test or production shipping account.
Migrating an existing shipping account
1. Send a PUT request with the existing shipping account ID, carrier set to fedex_v2, billing address (if not already specified), and one of the following authentication methods: Invoice Information or PIN Option.
2. If the PIN Option is chosen, send a second PUT request with the received PIN for verification.
Fill in the fields with your details in the below code and run the request in Postman.
POST request for invoice flow:
curl --location --request PUT 'https://api.zenkraft.com/shippingaccount' \
--header 'Content-Type: application/json' \
--header 'zkkey;' \
--data-raw '{
"shipping_account": {
"shipping_account": "444595974",
"carrier": "fedex_v2",
"country": "US",
"name": "My FedEx v2 US test account",
"billing_address": {
"street1": "15 W 18TH ST FL 7",
"city": "NEW YORK",
"state": "NY",
"postal_code": "100114624",
"country": "US",
"company": "Zenkraft",
"name": "John Smith",
"phone": "+12342342345",
"email": "john.smith@bringg.com"
},
"debug": true,
"auth": {
"account_number": "700257037",
"invoice_number": "234562278",
"invoice_currency": "USD",
"invoice_date": "2025-02-07",
"invoice_amount": "234.00"
},
"test": false
}
POST request for PIN flow:
curl --location --request PUT 'https://api.zenkraft.com/shippingaccount' \
--header 'Content-Type: application/json' \
--header 'zkkey;' \
--data-raw '{
"shipping_account": {
"shipping_account": "444595974",
"carrier": "fedex_v2",
"country": "US",
"name": "My FedEx v2 US test account",
"billing_address": {
"street1": "15 W 18TH ST FL 7",
"city": "NEW YORK",
"state": "NY",
"postal_code": "100114624",
"country": "US",
"company": "Zenkraft",
"name": "John Smith",
"phone": "+12342342345",
"email": "john.smith@bringg.com"
},
"debug": true,
"auth": {
"account_number": "700257037",
"pin_option": "email"
},
"test": false
}
}'
Once the PIN is received verify it with another call:
curl --location --request PUT 'https://api.zenkraft.com/shippingaccount' \
--header 'Content-Type: application/json' \
--header 'zkkey;' \
--data-raw '{
"shipping_account": {
"shipping_account": "444595974",
"carrier": "fedex_v2",
"country": "US",
"name": "My FedEx v2 US account",
"defaults": {
"dim_units": "IN",
"weight_units": "LB",
"packaging_type": "your_packaging",
"label_type": "PDF",
"currency": "USD"
},
"billing_address": {
"street1": "15 W 18TH ST FL 7",
"city": "NEW YORK",
"state": "NY",
"postal_code": "100114624",
"country": "US",
"company": "Zenkraft",
"name": "John Smith",
"phone": "+12342342345",
"email": "john.smith@bringg.com"
},
"debug": true,
"auth": {
"account_number": "700257037",
"pin": "234561",
"pin_option": "email"
},
"test": false
}
}'
Creating a new shipping account
You can use either the Invoice or the PIN authentication flow. You can find the steps for both of them below.
Invoice authentication flow
You will need the details of a FedEx invoice from the past 90 days to authenticate the account.
- Submit invoice details: Send a POST request with the invoice number, date, amount, and currency.
- Account Verification: If the details are correct, the account setup is complete. If you receive an error please double check the invoice details or get a more recent invoice.
PIN Flow
It is possible to use a one-time PIN to verify the account. Before choosing this option please make sure your phone number/email address is registered on the account or you know who the phone number/email address belongs to and that person is able to assist you.
- Generate the PIN: Send a POST request with pin_option set to email, sms, or call. FedEx will send a PIN to the registered phone/email.
- Verify the PIN: Send a PUT request to the same endpoint with the received PIN. If correct, the account setup is complete.
Fill in the missing details in the below code and run the request in Postman.
NOTE: This request is for the invoice flow. For the PIN flow you can use the requests from above with
POST method instead of PUT.
curl --location --request POST 'https://api.zenkraft.com/shippingaccount' \
--header 'Content-Type: application/json' \
--header 'zkkey;' \
--data-raw '{
"shipping_account": {
"shipping_account": "444595974",
"carrier": "fedex_v2",
"country": "US",
"name": "My FedEx v2 US test account",
"billing_address": {
"street1": "15 W 18TH ST FL 7",
"city": "NEW YORK",
"state": "NY",
"postal_code": "100114624",
"country": "US",
"company": "Zenkraft",
"name": "John Smith",
"phone": "+12342342345",
"email": "john.smith@bringg.com"
},
"debug": true,
"auth": {
"account_number": "700257037",
"invoice_number": "234562278",
"invoice_currency": "USD",
"invoice_date": "2025-02-07",
"invoice_amount": "234.00"
},
"test": false
}
Creating a new test account
Fill in the missing details in the below code and run the request in Postman
You can create these sandbox accounts in: US, CN, IN, CA, SE, FR, IT, PL, FI, ES, UK.
curl --location --request POST 'https://api.zenkraft.com/shippingaccount' \
--header 'zkkey;' \
--header 'Content-Type: application/json'
--data '{
"shipping_account": {
"carrier": "fedex_v2",
"country": "US",
"name": "My FedEx v2 US test account",
"defaults": {
"dim_units": "IN",
"weight_units": "LB",
"packaging_type": "your_packaging",
"label_type": "PDF",
"currency": "USD"
},
"debug": true,
"test": true
}
}'
For any questions or assistance please create a case for our support team. For ease of support you can also schedule a call.