Add node for GoCardless

GoCardless is a major payment service for accepting direct debit payments.
A node supporting its most common operations like creating and managing mandates and initiating and tracking direct debits would be very helpful.

A cherry on top would be to to support status webhooks in a trigger node. :wink:

See API reference: https://developer.gocardless.com/api-reference/
It can be based on their own TypeScript-based Node-client: https://github.com/gocardless/gocardless-nodejs
Sandbox account can be created here: https://manage-sandbox.gocardless.com/signup

As always, happy to help! I can provide testing and feedback with our GC account.

Plus one to this. A lot of community membership organisations use it to handle monthly / yearly subscription fees.

Interestingly this is not something that Zapier has, and has caused a number of orgs we know to spin up their own custom code which is silly!

Two core workflows are:

After a form submission, create a paying customer

  1. Create a customer
    • Then save the returned customer ID to your membership database
  2. Create a customer bank account linked to the customer
  3. Create a mandate linked to the customer’s bank account
  4. Create a subscription which schedules payments against the customer’s mandate
    • Then save the subscription status to your membership database

Webhook for when things change in GoCardless

This is already achieved by the webhook node :white_check_mark: For example, the customer’s payment status changes and you want to update this data in Action Network so that reminder emails can be sent to them to update their payment details.

Agree with frane that a cherry on top would be to handle the GoCardless webhooks with a bit more finesse - in particular, there is a signature which ought to be programatically verified with one of their libraries.

1 Like

Going to add “get/update a customer” as a primary usecase here - probably actually higher priority than the ‘create a paying customer’ usecase listed above as, quite often, you’ll use GoCardless’ own payments UI for that, but you will afterwards definitely want to retrieve data and keep things up to date.

Retrieve data about your customers and their billing details

For example, someone posts to a form, then maybe you fetch their membership record via their email address in airtable, and then you look for the customer or their active subscriptions or their payments log or their direct debit mandates (so you can check whether you can get their money at all!) with the customer filter parameter and the customer ID from the database call you just made - perhaps you want to sync the records of their payments/payment status in another system

Update a customer’s details

Perhaps they changed their email address through this form - you’ll want to update the customer with the new value.