Fedex Logo
Developer Portal

API Authorization

Introduction

Les API FedEx prennent en charge la méthode d’authentification OAuth 2.0 (jeton du porteur) pour autoriser les demandes API de votre application avec les ressources FedEx. Le jeton d’accès OAuth doit être généré de nouveau à chaque 60 minutes et fourni avec chaque transaction API pour authentifier et autoriser votre accès aux ressources FedEx.

Détails de l’API d’autorisation

Cette API vous permet d’autoriser les demandes d’API et elle est nécessaire pour authentifier les ressources FedEx. La section suivante décrit les conditions préalables de l’API :

Lors de l’inscription au FedEx Developer Portal, FedEx fournit une combinaison composée d’un ID client (clé API) et d’un secret client (clé secrète) pour authentifier les demandes d’API de votre projet. Chaque projet de votre organisation est associé à cette combinaison d’ID client et de secret client, appelée identifiants API.

Remarque : Les clients (Internal, Compatible, Proprietary Parent Child et Integrators) peuvent communiquer avec un représentant FedEx pour obtenir l’API et les clés secrètes.

Pour fournir un niveau supplémentaire de sécurité, les clients FedExMD (Internal, Compatible, Proprietary Parent Child et Integrators) peuvent envoyer une clé secondaire (secret client) et un secret secondaire (mot de passe client) en plus de la clé API et de la clé secrète pour créer un jeton OAuth. Ce jeton est utilisé dans toutes les demandes d’API pour l’authentification.

Vous pouvez recréer une clé secrète oubliée à partir de la page Projets du FedEx Developer Portal.

Remarque : La création de nouvelles clés entraînera un changement de code dans votre application.

Renseignements importants dans ce document :

  • Clé client comme clé API
  • Secret client comme clé secrète
  • Clé secondaire comme clé client
  • Secret secondaire comme mot de passe client

Les identifiants API servent aux fins suivantes :

  • Ils identifient le projet qui fait un appel aux API.
  • Ils autorisent l’accès aux API qui sont activées dans le cadre de votre projet.

Comment obtenir les identifiants d’API

Les identifiants sont créés sur la base des données saisies dans le FedEx Developer Portal :

  • ID client : la clé API (ID client) est créée lorsqu’un projet est créé sur le FedEx Developer Portal. Vous pouvez également consulter la clé API associée au projet sur la page Aperçu du projet.
  • Secret client : vous verrez la clé secrète (secret client) sur la page de confirmation une fois qu’un projet aura été créé sur le FedEx Developer Portal. Si nécessaire, la clé secrète peut également être générée à nouveau sur la page Aperçu du projet.

Remarque : Les clients FedExMD (Internal, Compatible, Proprietary Parent Child et Integrators) doivent envoyer la clé secondaire (secret client) et le secret secondaire (mot de passe client) en plus de la clé API et de la clé secrète pour la création d’un jeton OAuth. Reportez-vous à la section API d’inscription au moyen d’identifiants pour savoir comment obtenir la clé secondaire et le secret secondaire.

Fonctionnement de l’API d’autorisation

Autorisation d’API

Une fois que vous avez obtenu les identifiants API sur le FedEx Developer Portal, le point de terminaison OAuth est utilisé pour obtenir un jeton d’accès qui est utilisé comme identifiant avec chaque transaction d’API.

Voici les renseignements d’entrée requis pour cette demande OAuth :

  • grant_type : type de client. (Valeurs valides : client_credentials, csp_credentials et client_pc_credentials)
  • client_id : Renvoie à la clé API du projet.
  • client_secret : se réfère à la clé secrète API du projet.

Pour les clients FedEx® Internal, Compatible, Proprietary Parent Child et Integrator, il est nécessaire d‘envoyer des renseignements supplémentaires ci-dessous :

  • child_id : clé client renvoyée par la demande d’API d’inscription au moyen d’identifiants.
  • child_secret : mot de passe client renvoyé par la demande d’API d’inscription au moyen d’identifiants.

Le résultat de cette demande devrait renvoyer les éléments ci-dessous :

  • access_token : le jeton OAuth chiffré qui doit être utilisé dans la transaction API.
  • token_type : type de jeton. Dans ce cas, il s’agit de l’authentification du porteur.
  • expires_in : délai d’expiration du jeton en millisecondes. Le délai standard d’expiration des jetons est d’une heure.
  • Scope : portée de l’autorisation fournie au consommateur.

Exemples

Demande :

POST /oauth/token HTTP/1.1
grant_type= client_credentials&client_id=votre ID client&client_secret=Votre secret

Réponse :

{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}

Demande pour les clients FedEx® Internal, Compatible et Integrator :

POST /oauth/token HTTP/1.1
grant_type= csp_credentials&client_id=Client ID&client_secret= Secret client&child_key=Child key&child_secret=Secret secondaire

Réponse :

{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}

Demande de clients FedExMD Proprietary Parent Child :

POST /oauth/token HTTP/1.1
grant_type= client_pc_credentials&client_id=Client ID&client_secret= Secret client&child_key=Child key&child_secret=Secret secondaire

Réponse :

{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}

Remarque : Le jeton d’accès expire au bout d’une heure. Il peut être généré à nouveau à l’aide d’une demande POST au point de terminaison oauth/jeton.

API Authorization (1.0)

API Authorization

Use this endpoint to request the OAuth token (bearer token) to authorize your application to access FedEx resources. You can pass this bearer token in your subsequent individual FedEx API endpoint requests.
Note: FedEx APIs do not support Cross-Origin Resource Sharing (CORS) mechanism.

header Parameters
content-type
required
string
Example: application/x-www-form-urlencoded

This is used to indicate the media type of the resource. The media type is a string sent along with the file indicating format of the file.
Example: application/x-www-form-urlencoded

Request Body schema: application/x-www-form-urlencoded
grant_type
required
string

Specify Type of customer requesting the Oauth token.
Valid Values: client_credentials, csp_credentials, client_pc_credentials
Note:
client_credentials - should be used for customers, Integrators, and brand new Compatible Provider customers who are yet to unboard child accounts.
csp_credentials - should be used for Integrators, and Compatible Provider customers with existing child accounts.
client_pc_credentials – should be used for Proprietary Parent Child customers.

client_id
required
string

Specify the Client ID also known as API Key received during FedEx Developer portal registration.
Example: XXXX-XXX-XXXX-XXX

client_secret
required
string

Specify the Client secret also known as Secret Key received during FedEx Developer portal registration.
Example: XXXX-XXX-XXXX-XXX

child_Key
string

Specify the Client ID also known as Customer Key. This element is used as a login credential for an Integrator customer, Compatible customer or a Proprietary Parent Child customer to access the application on behalf of their customer.
Example: XXXX-XXX-XXXX-XXX
Note: This element should be used by Integrator, Compatible and Proprietary Parent Child customers.

child_secret
string

Specify the Client secret also known as Customer Secret. This element is used as a login credential for an Integrator customer, Compatible customer or a Proprietary Parent Child customer to access the application on behalf of their customer.
Example: XXXX-XXX-XXXX-XXX
Note: This element should be used by Integrator, Compatible and Proprietary Parent Child customers.

Responses

200

Success

401

Unauthorized

500

Failure

503

Service Unavailable

post /oauth/token

Sandbox Server

https://apis-sandbox.fedex.com/oauth/token

Production Server

https://apis.fedex.com/oauth/token

Request samples

Content type
application/x-www-form-urlencoded
Example
Copy
grant_type=client_credentials&client_id=Your_client_ID&client_secret=Your_secret

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……",
  • "token_type": "bearer",
  • "expires_in": 3600,
  • "scope": "CXS"
}
CLOSE

Response

Copy