HomeProduct DocsAPI ReferenceChangelog
RecurlyAPI GuidesRecurly.jsWebhooksAPI ReferenceSupportBook demo
API Reference

Client libraries

Official SDKs and client libraries for integrating the Recurly Subscriptions API in your preferred language or platform.

Overview

Recurly provides official client libraries for all major programming languages and mobile platforms. These libraries handle authentication, request formatting, and error handling — so you can focus on building your subscription features

API client libraries

We maintain official client libraries for seven languages. Each library is kept in sync with the latest API version and includes comprehensive documentation.

Ruby

The Ruby client is distributed via Rubygems and works with Ruby 2.7+.

Install via Bundler:

gem 'recurly'
bundle install

Node.js

The Node.js client supports Node 14+.

Install via npm:

npm install recurly

Python

The Python client supports Python 3.7+.

Install via pip:

pip install recurly

.NET

The .NET client supports .NET 6.0+.

Install via NuGet Package Manager:

Install-Package Recurly

Java

The Java client supports Java 8+.

Add to your pom.xml:

<dependency>
  <groupId>com.recurly.v3</groupId>
  <artifactId>api-client</artifactId>
  <version>LATEST</version>
</dependency>

PHP

The PHP client supports PHP 7.4+.

Install via Composer:

composer require recurly/recurly-client

Go

The Go client supports Go 1.16+.

Install via go get:

go get github.com/recurly/recurly-client-go/v3

Mobile SDKs

The Recurly Native Mobile SDKs let you securely collect payment information directly on iOS and Android devices. When customers submit payment details through the SDK, the data is encrypted and sent directly to Recurly — your servers never touch sensitive card data. This drastically reduces your PCI compliance scope.

How it works

  1. Customer enters payment details in your app using the Recurly SDK
  2. SDK encrypts the data and sends it directly to Recurly
  3. Recurly returns an authorization token
  4. Your app sends that token to your server
  5. Your server completes the subscription using the Recurly API

This flow means your PCI scope is minimal — you're not storing or transmitting raw payment data.

iOS

The Recurly iOS SDK integrates with Xcode and CocoaPods.

Install via CocoaPods:

pod 'RecurlySDK'
pod install

Android

The Recurly Android SDK works with Android API level 21+.

Add to your build.gradle:

dependencies {
  implementation 'com.recurly:android-sdk:LATEST'
}

Older API versions

If you're still using our older XML API (v2), documentation and client libraries are available separately. However, we strongly recommend upgrading to the REST API v3, which offers better performance, more features, and improved developer experience.

Browse v2 documentation and libraries

FAQs

Which client library should I use?

Choose the library that matches your project's language or platform. All official libraries are maintained and kept current with the API.

Are the client libraries open source?

Yes, all Recurly client libraries are open source and hosted on GitHub. You can review the code, file issues, and contribute.

Do I have to use an official client library?

No, you can work directly with the REST API using any HTTP client. However, the official libraries save you time by handling authentication, serialization, and error handling.

How do I report a bug in a client library?

File an issue on the library's GitHub repository. For security issues, email [email protected].

Can I use the mobile SDKs without a backend server?

Not for completing subscriptions. The mobile SDK collects payment data and returns a token, but you still need a backend server to call the Recurly API to create or update subscriptions. This architecture keeps your PCI compliance scope minimal.

What if my language isn't supported?

You can integrate directly with our REST API using any HTTP client library. The Recurly API is language-agnostic — you just need to handle HTTP requests and JSON responses.

How do I keep my client library up to date?

Each language's package manager (npm, pip, Rubygems, etc.) lets you check for and install updates. We recommend staying on the latest version for the best performance and features.