Skip to main content

GoCardless API Destination

Nexla's bi-directional connectors allow data to flow both to and from any location, making it simple to create a FlexFlow data flow that sends data to a GoCardless API location.
go_cardless_api.png

GoCardless API

  1. Click the + icon on the Nexset that will be sent to the GoCardless API destination, and select the Send to Destination option from the menu.

  2. Select the GoCardless API connector from the list of available destination connectors. Then, select the credential that will be used to connect to GoCardless, and click Next; or, create a new GoCardless API credential for use in this flow.

  3. In Nexla, GoCardless API destinations can be created using pre-built endpoint templates, which expedite destination setup for common GoCardless API endpoints. Each template is designed specifically for the corresponding GoCardless API endpoint, making destination setup easy and efficient.
    • To configure this destination using a template, follow the instructions in Configure Using a Template.

    GoCardless API destinations can also be configured manually, allowing you to send data to GoCardless API endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this destination manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common GoCardless API endpoints. Each template is designed specifically for the corresponding GoCardless API endpoint, making destination setup easy and efficient.

Endpoint Settings

  • Select the endpoint to which this destination will send data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your destination for this endpoint.

    Create Customer

    Creates a new customer record in GoCardless, which is a prerequisite for creating customer bank accounts and mandates.

    • Sends a POST request to https://api.gocardless.com/customers with the customer data wrapped in a top-level customers key.
    • Each record should include at minimum the customer's email address and given name.

    GoCardless requires POST request bodies to wrap the resource data in a top-level key matching the resource type (e.g., {"customers": {...}}). Use the Property Inside JSON Object grouping algorithm with the property name set to customers.

    Create Customer Bank Account

    Creates and attaches a bank account to an existing GoCardless customer, enabling mandate and payment creation.

    A customer must exist before a bank account can be attached to it. Use the Create Customer endpoint first if needed. Wrap the payload in a top-level customer_bank_accounts key.

    Create Mandate

    Creates a Direct Debit mandate against an existing customer bank account, authorizing future payment collections.

    A customer bank account must exist before a mandate can be created. Wrap the payload in a top-level mandates key. The returned mandate ID is required for creating payments and subscriptions.

    Create Payment

    Creates a one-off or recurring payment against an existing GoCardless mandate.

    • Sends a POST request to https://api.gocardless.com/payments with the payment details.
    • Each record should include the amount (in pence/cents), currency, charge date, and mandate ID.

    Amounts must be specified in the smallest currency unit (e.g., pence for GBP). Wrap the payload in a top-level payments key. Set batch size to 1 — GoCardless does not accept bulk payment arrays.

    Create Refund

    Creates a refund against a settled GoCardless payment, returning funds to the customer's bank account.

    • Sends a POST request to https://api.gocardless.com/refunds with the refund details.
    • Each record should include the refund amount, payment ID, and an idempotency key to prevent duplicate refunds.

    Refunds can only be created against payments that have been collected (settled). Wrap the payload in a top-level refunds key. Include an Idempotency-Key header to prevent accidental duplicate refunds.

    Create Subscription

    Creates a recurring payment schedule (subscription) against an existing GoCardless mandate for automated periodic billing.

    Subscriptions automatically generate payments on the defined schedule. Wrap the payload in a top-level subscriptions key. A mandate must be active before a subscription can be created against it.

    Cancel Payment

    Cancels a GoCardless payment before it has been submitted to the banks, stopping it from being collected.

    Payments can only be cancelled while they are in a cancellable state (e.g., pending_submission). Payments that have already been submitted to the banks cannot be cancelled.

    Delete End-User Agreement

    Deletes a specific end-user agreement, revoking the associated bank account data access consent.

    Deleting an EUA revokes all associated bank account data access. This should only be done when the user has explicitly withdrawn consent.

    Create EUA Reconfirmation

    Creates a reconfirmation request for an end-user agreement to refresh the user's consent for continued bank account data access.

    • Sends a POST request to the GoCardless Bank Account Data EUA reconfirmation endpoint with the reconfirmation payload.
    • Configure the following parameter: Id — the unique identifier of the end-user agreement to reconfirm.

    Reconfirmation is required periodically for some institutions under Open Banking regulations. Use this endpoint to initiate the reconfirmation flow before the existing EUA expires.

    Delete Requisition

    Deletes a GoCardless Bank Account Data requisition and revokes any associated access to the linked account data.

    Deleting a requisition will revoke access to all bank accounts linked in that session. This action cannot be undone.

Endpoint Testing

Once the selected endpoint template has been configured, Nexla can send a test payload to verify the destination is configured correctly.

  • To test the current endpoint configuration, click the Test button to the right of the endpoint selection menu. A test payload will be sent and the result will be displayed in the Endpoint Test Result panel on the right.

  • If the test result is not as expected, review the selected endpoint and associated settings, and make any necessary adjustments. Then, click the Test button again to verify the updated configuration.

Configure Manually

GoCardless API destinations can also be manually configured to send data to any valid GoCardless API endpoint. This enables Nexla to create or update GoCardless resources — such as customers, mandates, payments, or subscriptions — by sending Nexset records to the appropriate GoCardless API endpoint. You can also configure Nexla to automatically send the response received from the GoCardless API after each call to a new Nexla webhook data source.

First, select the API method that will be used for calls to the GoCardless API from the Method pulldown menu. Common methods for GoCardless destinations include:

  • POST: For creating new resources such as customers, payments, mandates, or subscriptions.
  • PUT: For replacing an existing resource entirely.

Data Format

  1. Select the format in which the Nexset data will be sent to the GoCardless API from the Content Format pulldown menu. Nexla will automatically convert the data to the selected format for each API call.

    GoCardless accepts application/json for all write operations. Select JSON as the content format to ensure compatibility.

    GoCardless requires that POST request bodies wrap the resource data in a top-level key matching the resource type. For example, to create a customer, the request body must be structured as {"customers": {"email": "...", "given_name": "...", ...}}. Use the Record Batching section below to configure wrapping if your Nexset records need to be nested under a resource key.

API Endpoint URL

  1. Enter the URL of the GoCardless API endpoint to which you want to send the Nexset data in the URL field. Include the full URL with protocol (https://). For operations that target a specific resource, append the resource ID to the URL path.

    Common GoCardless destination endpoints include:

    • https://api.gocardless.com/customers — Create new customer records.
    • https://api.gocardless.com/payments — Create new payments against existing mandates.
    • https://api.gocardless.com/mandates — Create new mandates linked to existing customer bank accounts.
    • https://api.gocardless.com/subscriptions — Create new subscriptions linked to existing mandates.
    • https://api.gocardless.com/refunds — Create refunds for existing payments.

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this destination, enter the headers and corresponding values as comma-separated pairs in the Request Headers field (e.g., header1:value1,header2:value2).

    You do not need to include the Authorization header here, as it is handled automatically by Nexla based on your GoCardless credential configuration. For GoCardless, consider adding GoCardless-Version (e.g., GoCardless-Version:2015-07-06) to pin your integration to a specific API version, and Idempotency-Key headers if your use case requires idempotent request handling to prevent duplicate resource creation.

Exclude Attributes from the Call

Optional
  • If any record attributes in the Nexset should be omitted when sending data to this GoCardless API destination, select the attributes from the Exclude Attributes pulldown menu. This is useful for removing internal Nexla metadata fields or attributes that are not accepted by the GoCardless API.

  • Any number of attributes can be selected for exclusion, and all excluded attributes will be shown in the field. To remove an attribute from the list, click the X icon next to the attribute name.

Record Batching

Optional
  1. If records should be sent to this destination in batched API calls, check the box next to Would you like to batch your records together? to enable record batching.

  2. Enter the maximum number of records that should be batched together in a single API call in the Batch Size field. By default, this value is set to 100.

    Most GoCardless create endpoints accept a single resource per request, not arrays of records. If you are sending data to a GoCardless endpoint that creates individual resources (such as /payments or /customers), set the batch size to 1 and use the Property Inside JSON Object grouping algorithm to wrap each record under the required top-level resource key.

  3. Select the algorithm that will be used to group records into batches from the Grouping Algorithm pulldown menu. The sample request shown in the panel on the right will be updated to reflect the current batching settings.

    Property Inside JSON Object

    1. Enter the name of the JSON property that should contain the record data in the Property Name field. For GoCardless, this is the resource type name — for example, enter customers when creating customer records, or payments when creating payment records.
    2. If any additional top-level properties should be included in the request body, enter them in the Other Props field in JSON format.

    Code

    1. Enter the code that will be used to construct the batched request body in the code editor below the Grouping Algorithm field. This option provides maximum flexibility for constructing custom request body structures required by specific GoCardless endpoints.

Response Webhook

Optional

Nexla can automatically send the response received from the GoCardless API after each call to a new Nexla webhook data source. This option allows you to capture newly created resource IDs, status information, or error details returned by GoCardless after each API call — enabling downstream processing or error handling workflows.

  • To enable this option, check the box next to Would you like to process the API response as a Nexla Webhook source?.

Sample Request Payload

Sample request payloads containing a portion of the Nexset data that will be sent to the GoCardless API endpoint based on the current settings are shown in the Sample Payload panel on the right. These samples can be referenced to ensure that the destination and request settings are correctly configured.

  • Click on a sample request payload to expand it and view the complete payload content.
  • Sample payloads are automatically updated with each setting change, making it easy to verify that changes achieve the desired effect.

Endpoint Testing

After all endpoint settings have been configured, Nexla can send a test payload to the GoCardless API to ensure that the destination is configured correctly.

  1. To send a test payload, select the Test button at the top of the Sample Payload panel, and click on a listed sample payload to expand it.

  2. If any modifications to the sample payload are needed, make the necessary changes directly within the sample window.

  3. Click the Send Test Data button at the top of a sample payload to send the test payload to the GoCardless API using the current settings.

Save & Activate the Destination

  • Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to the configured GoCardless endpoint, open the destination resource menu, and select Activate.

    The Nexset data will not be sent to GoCardless until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.