Build better, smarter, faster with our API

Focus on building amazing Direct Debit integrations, not building from scratch

View our developer docs→ copy 10
customisable-integration

We speak your language

Client libraries for PHP, Java,
Ruby, Python, and .NET

Simple to develop, test & iterate

End-to-end testing in our free sandbox environment

developer-api

API-first technology

Clean, modern RESTful API built from the ground up


Set up your integration in three simple steps

Add customers

Use our out-of-the-box payment pages or build your own white labelled pages for a consistent brand experience.

Collect payments

Create and manage one off payments and subscriptions with simple API requests.

Get real-time reports and alerts

Automatic event notifications through webhooks means no need to download and parse reports.

Code example for creating a subscription:

$subscription = $client->subscriptions()->create([
  "params" => [
    "amount" => 1500,
    "currency" => "GBP",
    "interval_unit" => "monthly",
    "day_of_month" => "5",
    "links" => [
      "mandate" => "MD0000XH9A3T4C"
    ],
    "metadata" => [
      "subscription_number" => "ABC1234"
    ]
  ],
  "headers" => [
    "Idempotency-Key" => "random_subscription_specific_string"
  ]
]);
subscription = client.subscriptions.create(
    params={
        "amount" : 1500,
        "currency" : "GBP",
        "interval_unit" : "monthly",
        "day_of_month" : "5",
        "links": {
            "mandate": "MD0000XH9A3T4C"
        },
        "metadata": {
            "subscription_number": "ABC1234"
        }
    }, headers={
        'Idempotency-Key': "random_subscription_specific_string"
})
subscription = client.subscriptions.create(
  params: {
    amount: 1500,
    currency: 'GBP',
    interval_unit: 'monthly',
    day_of_month: '5',
    links: {
      mandate: 'MD0000XH9A3T4C'
    },
    metadata: {
      subscription_number: 'ABC1234'
    }
  },
  headers: {
    'Idempotency-Key': 'random_subscription_specific_string'
  }
)
public class CreateSubscription {
    public static void main(String[] args) {
        GoCardlessClient client = GoCardlessClient.create(
            System.getenv("GC_ACCESS_TOKEN"),
            GoCardlessClient.Environment.SANDBOX
        );
        Subscription subscription = client.subscriptions().create()
            .withAmount(1500)
            .withCurrency("GBP")
            .withIntervalUnit(IntervalUnit.MONTHLY)
            .withDayOfMonth(5)
            .withLinksMandate("MD0000YTKZKY4J")
            .withMetadata("subscription_number", "ABC123")
            .withIdempotencyKey("random_subscription_specific_string")
            .execute();
    }
}
using System;
using GoCardless;
using GoCardless.Services;
using GoCardless.Resources;

class Program
{
  static void Main(string[] args)
  {
    String access_token = Environment.GetEnvironmentVariable("GC_TOKEN");

    var gocardless = GoCardlessClient.Create(
    access_token, GoCardlessClient.Environment.SANDBOX);

    var subscriptionRequest = new SubscriptionCreateRequest()
    {
      Amount = 1000,
      Currency = "GBP",
      Name = "Monthly subscription",
      Interval = 1,
      IntervalUnit = SubscriptionCreateRequest.SubscriptionIntervalUnit.Monthly,
      Links = new SubscriptionCreateRequest.SubscriptionLinks()
      {
        Mandate = "MD0123"
      }
    };

    var subscriptionResponse = gocardless.Subscriptions.CreateAsync(subscriptionRequest).Result;
    Subscription subscription = subscriptionResponse.Subscription;
  }
}
Get a sandbox account→ copy 10

Want to learn more about getting started? Read our reference docs


Direct Debit for the Digital Age

plug-in

Connects seamlessly to
your business

An API designed to integrate Direct Debit into your business quickly and easily.

future-proof

Future proof
payments technology

A continuously improving, cutting edge online Direct Debit solution.

globe

One integration for the UK, Eurozone and Sweden

We handle the complexities of Direct Debit across geographies.


Quick to build with a robust set of tools and resources

Copy and paste code samples

We've worked hard to make building with our API as painless as possible.

Clear, accessible documentation

Full reference documentation including step by step guides.

Expert developer support

Our team of API specialists are available to answer queries as you're building.


"The API is great from a technical perspective and using GoCardless means we can avoid the legacy banks payment networks."

Bill Packman, COO

Ready to start testing today?

Get a sandbox account→ copy 10