The Shell Card Management API provides secure and structured access to the Shell Card Platform, enabling integration with Shell’s internal systems for managing card-related resources.
This REST-based API uses the POST method for all operations—including retrieval, creation, update, and deletion of resources. It supports flexible search capabilities through JSON-encoded request bodies and returns JSON-formatted responses. Standard HTTP status codes are used to indicate the outcome of each request.
Authentication is handled via OAuth 2.0 using the Client Credentials flow. Access tokens must be included in the Authorization header of each request.
All resources are managed within the Shell Card Platform, which abstracts the complexity of backend systems. Some operations may be processed asynchronously, and clients should be prepared to handle delayed responses or polling mechanisms where applicable.
Go to the Shell Developer Portal: https://developer.shell.com
Supported Java version is 8+.
The generated code uses a few Maven dependencies e.g., Jackson, OkHttp, and Apache HttpClient. The reference to these dependencies is already added in the pom.xml file will be installed automatically. Therefore, you will need internet access for a successful build.
- In order to open the client library in Eclipse click on
File -> Import.
- In the import dialog, select
Existing Java Projectand clickNext.
- Browse to locate the folder containing the source code. Select the detected location of the project and click
Finish.
- Upon successful import, the project will be automatically built by Eclipse after automatically resolving the dependencies.
- After successfully building the project, the client library needs to be installed as a Maven package in your local cache. Right-click on the project, select
Show in Local Terminal -> Terminalor useCtrl + Alt + Tto open Terminal.
- In the terminal dialog, run the following command to install client library.
mvn install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true
The following section explains how to use the ShellCardManagementAPIsLib library in a new project.
For starting a new project, click the menu command File > New > Project.
Next, choose Maven > Maven Project and click Next.
Here, make sure to use the current workspace by choosing Use default Workspace location, as shown in the picture below and click Next.
Following this, select the quick start project type to create a simple project with an existing class and a main method. To do this, choose maven-archetype-quickstart item from the list and click Next.
In the last step, provide a Group Id and Artifact Id as shown in the picture below and click Finish.
The created Maven project manages its dependencies using its pom.xml file. In order to add a dependency on the ShellCardManagementAPIsLib client library, double click on the pom.xml file in the Package Explorer. Opening the pom.xml file will render a graphical view on the canvas. Here, switch to the Dependencies tab and click the Add button as shown in the picture below.
Clicking the Add button will open a dialog where you need to specify ShellCardManagementAPIsLib in Group Id, shell-card-management-apis-lib in Artifact Id and 1.0.0 in the Version fields. Once added click OK. Save the pom.xml file.
Once the SimpleConsoleApp is created, a file named App.java will be visible in the Package Explorer with a main method. This is the entry point for the execution of the created project.
Here, you can add code to initialize the client library and instantiate a Controller class. Sample code to initialize the client library and using controller methods is given in the subsequent sections.
The generated code and the server can be tested using automatically generated test cases. JUnit is used as the testing framework and test runner.
In Eclipse, for running the tests do the following:
- Select the project ShellCardManagementAPIsLib from the package explorer.
- Select
Run -> Run as -> JUnit Testor useAlt + Shift + Xfollowed byTto run the Tests.
Note: Documentation for the client can be found here.
The following parameters are configurable for the API Client:
| Parameter | Type | Description |
|---|---|---|
| environment | Environment |
The API environment. Default: Environment.SIT |
| httpClientConfig | Consumer<HttpClientConfiguration.Builder> |
Set up Http Client Configuration instance. |
| clientCredentialsAuth | ClientCredentialsAuth |
The Credentials Setter for OAuth 2 Client Credentials Grant |
The API client can be initialized as follows:
import com.shell.apitest.Environment;
import com.shell.apitest.ShellCardManagementAPIsClient;
import com.shell.apitest.authentication.ClientCredentialsAuthModel;
import com.shell.apitest.exceptions.ApiException;
import com.shell.apitest.models.OAuthToken;
import java.io.IOException;
public class Program {
public static void main(String[] args) {
ShellCardManagementAPIsClient client = new ShellCardManagementAPIsClient.Builder()
.httpClientConfig(configBuilder -> configBuilder
.timeout(0))
.clientCredentialsAuth(new ClientCredentialsAuthModel.Builder(
"OAuthClientId",
"OAuthClientSecret"
)
.build())
.environment(Environment.SIT)
.build();
}
}The SDK can be configured to use a different environment for making API calls. Available environments are:
| Name | Description |
|---|---|
| SIT | Default |
| PRODUCTION | - |
This API uses the following authentication schemes.
- Configuration Interface
- HttpClientConfiguration
- HttpClientConfiguration.Builder
- HttpProxyConfiguration
- HttpProxyConfiguration.Builder