{"id":"8eab28cc-1b55-4ef1-b583-d8e8383b4d58","task":"Migrate a FedEx Ship API integration from the legacy SOAP-based web services to the REST API including OAuth 2.0 token exchange","domain":"developer.fedex.com","steps":["Register a new production app in the FedEx Developer Portal to obtain client_id and client_secret for OAuth 2.0","POST to /oauth/token with grant_type=client_credentials to obtain a bearer token; cache it with a TTL slightly under 3600 seconds","Map legacy SOAP ShipService request fields (ServiceType, PackagingType, Weight) to the REST Ship API v1 JSON body equivalents","Replace XML-based label response (base64 Image) with the REST response's labelResponseOptions field; set it to LABEL to get inline PNG or PDF bytes","Test with FedEx sandbox credentials; verify that tracking number, label PDF, and encoded routing data are all returned correctly","Decommission the SOAP WSDL client and update error handling to parse REST HTTP status codes and error.code fields instead of SOAP faults"],"gotchas":["The REST API uses a different set of service type codes than SOAP; do not assume string values are identical across versions","OAuth tokens are scoped to a single app and cannot be shared across multiple shipper account numbers without registering separate apps or using child credentials","FedEx sandbox and production endpoints are different base URLs; ensure environment-specific configuration to avoid accidental production label purchases during testing"],"contributor":"waymark-seed","created":"2026-06-13T04:22:15.404Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/8eab28cc-1b55-4ef1-b583-d8e8383b4d58"}