Awesome Open Source
Awesome Open Source

Connecting to the Square API

This is the project that generates API clients for connecting to the public Square API. You probably want to just use one of the clients that are pre-built in a language of your choice:

The Connect Examples are working sample applications that you can copy from to build your own.

Connect API Specifications

This repository contains the specifications for generating client SDKs with Swagger/OpenAPI.

The canonical specification is defined in api.json. The templates for our supported SDKs are located in swagger-templates. The configuration for each SDK (e.g. name of the library, version number, etc.) are located in swagger-config.

Configure a new language

Generating an SDK for a new language is possible. You'll need to have a working version of swagger-codegen and follow these steps:

  1. Check if Swagger Codegen supports the language by running:
    swagger-codegen langs
  2. If the language is supported, note swagger's name for it. We'll call it {lang}
  3. Add a configuration file on swagger-config named config-{lang}.json. You can check this template.
  4. Create a directory on swagger-templates named {lang}. Generation scripts expect to have a folder even if no custom templates are included:
    mkdir $lang
  5. (Optional) Add custom templates for your generator. Check Swagger Codegen Readme.

Generating and Downloading New Swagger Specs

Swagger specifications are now generated in our new pipeline, using the oas-pipeline tool. You will need the build id for an OAS generated with the tool in production. The Swagger Spec can then be generated with the following command:

oas-pipeline generate swagger <build_id>

Once the Swagger generation has succeeded, the spec files can be downloaded and pushed to a release branch with the following command:

./script/internal/ <build_id>

Note: the build id must be from a production environment build.




Copyright 2016 - 2018 Square, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
sdk (520
swagger (374
openapi (215
mustache (69
openapi-specification (33