API Authorization
Introduction
Les API FedEx prennent en charge la méthode d’authentification OAuth 2.0 (jeton du porteur) pour autoriser les requêtes d’API de votre application avec les ressources FedEx. Ce jeton d’accès OAuth doit être généré à nouveau toutes les 60 minutes et fourni avec chaque opération 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 requêtes d’API et elle est nécessaire pour authentifier les ressources FedEx. La section suivante décrit les conditions préalables pour l’API :
Lors de l’enregistrement sur le FedEx Developer Portal, FedEx fournit une combinaison composée d’un identifiant client (clé API) et d’un secret client (clé secrète) pour authentifier les requêtes d’API de votre projet. Chaque projet de votre organisation est associé à une combinaison d’ID client et de secret client, appelée identifiants API.
Remarque : les clients (Internal, Compatible, Proprietary Parent Child et Integrators) peuvent contacter un représentant commercial FedEx pour obtenir la clé API et la clé secrète.
Pour fournir une sécurité accrue, les clients FedEx® (Internal, Compatible, Proprietary Parent Child et Integrators) peuvent envoyer la clé enfant (secret client) et le secret enfant (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 requêtes d’API pour l’authentification.
Vous pouvez recréer la clé secrète oubliée depuis la page Projets du FedEx Developer Portal.
Remarque : la création de nouvelles clés entraînera un changement de code dans votre application.
Informations importantes dans ce document :
- La clé client correspond à la clé API
- Le secret client correspond à la clé secrète
- La clé enfant correspond à la clé client
- Le secret enfant correspond au mot de passe client
Les identifiants API servent aux fins suivantes :
- Identifier le projet qui appelle les API.
- Autoriser l’accès aux API qui sont activées dans le cadre de votre projet.
Obtention des identifiants API
Les identifiants sont créés d’après les entrées dans le FedEx Developer Portal :
- ID client : la clé API (ID client) est créée une fois qu’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 FedEx® (Internal, Compatible, Proprietary Parent Child et Integrators) doivent envoyer la clé enfant (secret client) et le secret enfant (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’enregistrement des identifiants pour savoir comment obtenir la clé enfant et le secret enfant.
Fonctionnement de l’API d’autorisation
API d’autorisation
Une fois que vous avez obtenu les identifiants API sur le FedEx Developer Portal, le point de terminaison OAuth permet d’obtenir un jeton d’accès qui est utilisé comme identifiant avec chaque opération API.
Vous trouverez ci-dessous les entrées requises associées à la requête OAuth :
- grant_type : type de client. (Valeurs valides : client_credentials, csp_credentials et client_pc_credentials)
- client_id : se réfère à la clé API du projet.
- client_secret : se réfère à la clé secrète API du projet.
Les clients FedEx® Internal, Compatible, Proprietary Parent Child et Integrators doivent envoyer les entrées supplémentaires ci-dessous :
- child_id : clé client renvoyée par la requête d’API d’enregistrement des informations d’identification.
- child_secret : mot de passe client renvoyé par la requête d’API d’enregistrement des informations d’identification.
Le résultat de cette requête devrait renvoyer les éléments ci-dessous :
- access_token : le jeton OAuth chiffré qui doit être utilisé dans l’opération 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. Une heure est le délai standard d’expiration des jetons.
- Scope : portée de l’autorisation fournie au client.
Exemples
Requête :
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″
}
Requête pour les clients FedEx® Internal, Compatible et Integrator :
POST /oauth/token HTTP/1.1
grant_type= csp_credentials&client_id=ID client&client_secret= Secret client&child_key=Clé enfant&child_secret=Secret enfant
Réponse :
{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}
Requête pour les clients FedEx® Proprietary Parent Child :
POST /oauth/token HTTP/1.1
grant_type= client_pc_credentials&client_id=ID client&client_secret= Secret client&child_key=Clé enfant&child_secret=Secret enfant
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 requête 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. |
Request Body schema: application/x-www-form-urlencoded
grant_type required | string Specify Type of customer requesting the Oauth token. |
client_id required | string Specify the Client ID also known as API Key received during FedEx Developer portal registration. |
client_secret required | string Specify the Client secret also known as Secret Key received during FedEx Developer portal registration. |
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. |
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. |
Responses
Success
Unauthorized
Failure
Service Unavailable
Sandbox Server
Production Server
Request samples
- Payload
- C#
- JAVA
- JAVASCRIPT
- PHP
- PYTHON
- RUST
- SWIFT
grant_type=client_credentials&client_id=Your_client_ID&client_secret=Your_secret
Response samples
- 200
- 401
- 500
- 503
- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……",
- "token_type": "bearer",
- "expires_in": 3600,
- "scope": "CXS"
Response