Announcing new versions of our client SDKs

We are releasing a big update to our first-party SDKs, as well as a new Slack community for developers!

Reddit
LinkedIn

[Update: the beta is now over; you can download the most up to date versions of our client SDKs here.]

At Square, we want to make building integrations with our platform as fast and easy as possible. To help with that, we are working on a big update to our SDKs to expand their functionality and make them even easier to use. We are also launching a Slack community to gather feedback about the new SDKs we’re releasing. If you are interested in talking about our new SDKs, or just meeting other Square developers, click the link below to put your name on the invite list.

**Build with Square on Slack**

A quick note about how we make our SDKs

We are constantly working on developing new features for our APIs, so we make liberal use of the OpenAPI Specification in our SDK creation process to avoid hand-crafting each one. We publish our specification file in the square/connect-api-specification repository on GitHub. We then use the Swagger Codegen project to turn our specification into client libraries for PHP, Python, Ruby, C#, and Java. We’ve put in long hours investing in the continuous integration for this process with Travis CI, to give you a full look into the whole process.

System.out.println("Hello Java!");

We are very excited to announce our first-ever Java SDK. Java is one of the most popular languages for developers using our APIs, and they have gone underserved for too long. This release is a direct result of our new continuous integration pipeline, which should allow for other languages that we don’t currently have to follow quickly. You can grab the source for our Java SDK on Github, or install with Maven or Gradle.

…and finally: five new SDKs!

Today, you will see that each of our SDK repositories have a branch called release/2.1.0. This branch (and our SDKs going forward) has a couple distinct differences:

  • Full support for all of our v1 and v2 endpoints, which means that you won’t have to call our endpoints directly if you are using popular v1 endpoints like item and inventory management.
  • New authorization format. Previously our SDKs required developers to include your authorization token with each request like this in PHP: $api_instance->listLocations('sqatp-xxx...');. Now you only need to set that token once ->setAccessToken(‘YOUR_ACCESS_TOKEN’); in your configuration and every API call you make afterward will be a little bit cleaner: $api_instance->listLocations();
  • We renamed some of our APIs. For example instead of SquareConnect\Api\LocationApi(); there is now SquareConnect\Api\Location**s**Api();

These are some BIG changes, and if you try to upgrade your SDK without changing any of your logic, it will break your app. That is why we are releasing these SDKs in beta, which you can find today on github. You can use the release/2.1.0 right now to start getting your application ready for the upgrade, or checkout the** **installation guides for each language.

We will be doing other proactive outreach to developers to make sure you know about these changes, our new community, and how to update applications. Over the next few months we will be incorporating feedback, and putting the final touches on our SDKs. Keep an eye on this blog, @SquareDev on twitter, and our new Slack community for more info!