I would recommend using Django/Celery/RabbitMQ for your background tasks pulling from the FedEx API. I would break each section into the smallest isolated separated steps  possible to make debugging the data flow easier (debugging different data cases can be really hard)

Create DB representation of API request that needs to be made to FedEx
Store the response of the API request that was made as S3 file or in DB blob (update previous API call as processed)
Parse the Response of the API request and store the normalized response data components in your DB (update previous response as processed)
Present normalized request response data to user if successful and necessary

Breaking it apart like this allows you to see exactly what went wrong at each step and why it went wrong; IE what if the initial request was invalid, what if the FedEx API returned an invalid resp, what if your parser didn't know how to parse a valid FedEx API response, etc.
Doing it this way allows for easier debugging and scalability long run.
I created a web application using django that utilizes a FedEx API so that a user can create shipments through my website. The response of this FedEx API call is in xml format that contains a lot of data such as; was the request a success or failure, error messages, error codes, tracking number (if successful) etc. I am using django background tasks to make these API calls and once a process finishes I am unable to retrieve the response from the API call.
I was thinking to maybe store the xml response in a file and feed it to the user but before I do that I wanted to find out if there is a better way.
I also would like to know the best practice for API responses in general, like does the user need to see the entire response and if so how can I display it to them in the best way possible.
How to Feed User a Django Background Task Response