API Authorization
Introdução
As API FedEx suportam o método de autenticação OAuth 2.0 (token de portador) para autorizar pedidos de API da aplicação com recursos FedEx. Este token de acesso OAuth tem de ser regenerado após cada 60 minutos e fornecido com cada transação da API para autenticar e autorizar o acesso aos recursos FedEx.
Detalhes da API de Autorização
Esta API permite autorizar pedidos de API e é necessária para autenticar recursos FedEx. A secção seguinte descreve os pré-requisitos da API:
Ao registar-se no FedEx Developer Portal, a FedEx disponibiliza uma combinação de ID de Cliente (Chave de API) e Segredo de Cliente (Chave Secreta) para autenticar os pedidos de API do seu projeto. Cada projeto na sua organização está associado a uma combinação de ID de Cliente e Segredo de Cliente, também designadas por credenciais de API.
Nota: os Clientes (Internos, Compatíveis, Diretos e Indiretos e Integradores) podem contactar o Representante da FedEx para obter as Chaves secretas e de API.
Para disponibilizar uma camada adicional de segurança, os clientes FedEx® (Internos, Compatíveis, Diretos e Indiretos e Integradores) podem enviar a Chave subordinada (Segredo de cliente) e o Segredo subordinado (Palavra-passe de cliente) para além da Chave de API e Chave secreta para criar um token OAuth. Este token é utilizado em cada pedido da API para autenticação.
Pode recriar a Chave Secreta esquecida através da página Projetos no FedEx Developer Portal.
Nota: a criação de novas chaves irá resultar na alteração do código na sua aplicação.
Informações importantes neste documento:
- Chave de Cliente como Chave de API
- Segredo de Cliente como Chave Secreta
- Chave Subordinada como Chave de Cliente
- Segredo Subordinado como Palavra-passe de Cliente
As credenciais de API servem os seguintes propósitos:
- Identificam o projeto que faz uma chamada para as API.
- Autorizam o acesso às API ativadas no âmbito do projeto.
Como obter as Credenciais da API
As credenciais são criadas com base nas entradas no FedEx Developer Portal:
- ID de cliente – a Chave de API (ID de cliente) é criada quando um projeto é criado no FedEx Developer Portal. Também pode ver a Chave de API associada ao projeto na página Descrição Geral do Projeto.
- Segredo de Cliente – verá a Chave Secreta (Segredo de Cliente) na página de confirmação quando um projeto for criado no FedEx Developer Portal. Se necessário, a Chave Secreta também pode ser regenerada, na página Descrição Geral do Projeto.
Nota: os clientes FedEx® (Internos, Compatíveis, Diretos e Indiretos e Integradores) têm de enviar a Chave subordinada (Segredo de cliente) e o Segredo subordinado (Palavra-passe de cliente) para além da Chave de API e Chave secreta para criar o token OAuth. Consulte a API de registo de credenciais para saber como obter a Chave subordinada e o Segredo subordinado.
Como Funciona a API de Autorização
Autorização de API
Após assegurar as credenciais de API no FedEx Developer Portal, o ponto final OAuth é utilizado para obter um token de acesso que é utilizado como credenciais com cada transação da API.
Estas são as entradas necessárias associadas ao pedido de OAuth:
- grant_type – tipo de cliente. (Valores válidos: client_credentials, csp_credentials, client_pc_credentials)
- client_id – refere-se à Chave de API do Projeto.
- client_secret – refere-se à Chave Secreta de API do Projeto.
Para clientes FedEx® Internos, Compatíveis, Diretos e Indiretos e Integradores, envie as entradas adicionais abaixo:
- child_id – Chave de Cliente devolvida através do pedido de API de Registo de Credenciais.
- child_secret – palavra-passe de cliente devolvida através do pedido de API de Registo de Credenciais
O resultado deste pedido deve ser devolvido abaixo:
- access_token – o token OAuth encriptado que tem de ser utilizado na transação da API.
- token_type – tipo de token. Neste caso, é autenticação de portador.
- expires_in – tempo de expiração do token em milissegundos. Uma hora é o tempo de expiração do token padrão.
- Scope – âmbito da autorização fornecida ao consumidor.
Exemplos
Pedido:
POST /oauth/token HTTP/1.1
grant_type= client_credentials&client_id=your client ID&client_secret=Your secret
Resposta:
{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}
Pedido para clientes FedEx® Internos, Compatíveis e Integradores:
POST /oauth/token HTTP/1.1
grant_type= csp_credentials&client_id=Client ID&client_secret= Client secret&child_key=Child key&child_secret=Child Secret
Resposta:
{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}
Pedido para clientes FedEx® Diretos e Indiretos:
POST /oauth/token HTTP/1.1
grant_type= client_pc_credentials&client_id=Client ID&client_secret= Client secret&child_key=Child key&child_secret=Child Secret
Resposta:
{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}
Nota: o token de acesso expira dentro de uma hora. Pode ser regenerado através de um pedido POST para o ponto final oauth/token.
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