As software development has matured, programmers now find both APIs and SDKs available to them and both are tools that can enhance their applications by saving development time and increasing security. Originally designed to improve the development experience for in-house developers, both APIs and SDKs are now available to end-users. Here, we explore differences between an API and an SDK, pros and cons, and how and when to use each.
API – Application Programming Interface
An API is a set of tested and proven interface components originally developed for the purpose of providing a consistent experience to in-house application developers. Over time, and as the Web matured, companies realized making these proprietary libraries of APIs available to outside third-party developers would enhance the interface and the use of their software products.
APIs are not complete applications though they usually include specifications and documentation to help with implementation. They are fully tested and approved code segments meant to enhance existing products or platforms by automating the exchange of information or capabilities that exist on a completely different product or platform. For example, a developer would use an API to obtain information or use functionality that already exists but is not within the developer’s program. In the use case example below, an issuer’s application using an API can send and retrieve information to allow a cardholder to place a stop payment on a transaction.
An API license agreement usually governs use of APIs between the licensor and other users or developers who want to use the API. Categories of APIs include: public APIs (available to any developer without authorization), partner APIs for business-to-business transfer of information over secure networks (that require authorization and contracts) and private APIs for internal use exchanging data between organizations within an enterprise.
Though third-party developers will use their own environment to develop and test the interface, a sandbox may be made available to aid QA testing prior to going live with the API.
There may be occasions when a cardholder logs into an account and sees a pending charge from a service the cardholder no longer uses and has cancelled. This cardholder may want to act immediately to prevent this charge from being completed. VSPS is a service provided by Visa that allows card issuers to place stop payment instructions in the VisaNet Cardholder Database as requested by the cardholder.
The API capabilities involved in the above scenario include:
Search and Retrieve Stop Instructions
Search for Eligible Transactions
Add Stop Instructions
Cancel Stop Instructions
Update Stop Instruction
Extend Stop Instruction
As shown in the list above, there is an exchange of information between the issuer’s application and the program, in this case a Visa (backend) program, being interfaced. The application may request stop instructions and eligible transactions and can also add, cancel, update or extend those stop instructions all through the interface.
SDK – Software Development Kit
An SDK includes a set of software development tools a third-party developer needs to write applications in a specific language or for a specific platform. It provides development tools, code examples and documentation and has a much larger footprint than a simple API. SDKs often include at least one API to send and receive information to external applications or programs.
An organization or developer may choose an SDK if they plan to build a new application, use a new development language or use a new platform. Benefits include:
Shorter development cycles
Access to component parts for a specific application (retail, banking, etc.)
After acquiring the kit for a given platform, the SDK is downloaded and installed. The developer will utilize development tools, the API(s) and testing tools beginning with the IDE (Integrated Development Environment) to code, compile and test a new application.
Because the Visa brand Visa Sensory Branding (VSB) has been developed for web and mobile applications to evoke similar emotions normally associated with a physical payment experience. This is achieved through the suite’s utilization of three sensory elements: Visa brand mark animation, Visa sound and Visa haptic pattern synthetization.
Customization is available, and the VSB SDK allows developers to integrate into iOS, Android and Web applications. Included in the SDK is the following:
Another example of an SDK is the VDE (Visa Digital Enablement) SDK, which simplifies connectivity between a digital or mobile wallet and Visa. The developer embeds the SDK within the mobile app, collects the card details and transfers that information to the SDK. After initializing and passing card details to the SDK, the developer receives a list of supported digital wallets. The developer can then request to push the “card” to the “wallet” selected by the user.
If interested in using the Visa Digital Enablement SDK, please contact your sales representative or email firstname.lastname@example.org.
Deciding whether it is better to use an API or SDK requires an organization or developer to consider time to launch, available budget and existing skill sets. A good analogy that most can relate to is cooking. You’ve decided to make a pizza and you have two choices. The first choice is to select a kit with all necessary ingredients ready to use: the dough, the seasoned sauce, the sliced toppings, grated cheese and instructions. Further, you can select the kit based on the type of pizza you want, be it gluten free, vegetarian, etc. The second choice is to start with a recipe. You have instructions, but you need to find the ingredients, make the dough, sauce and prepare the toppings.
There is a premium to the pizza kit, and it costs more but saves time and narrows the opportunity to make mistakes. That is the SDK. The recipe (the API) is best used by someone with experience because there are more possibilities that the outcome won’t be what was expected.
Simply put, if the intention is to enhance an existing application and you have coding and design skills, choose an API. If the intention is to create an entirely new application or an application using a new language or platform and time to market is key, choose an SDK.