With recurring payments set up by Direct Debit, it can be a few days before you receive your first payment. However, Instant Bank Pay from GoCardless is designed to complement bank debit using open banking. These bank-to-bank payments are confirmed instantly, so if you are running an online store you can more confidently ship goods or allow access to your online content straight away, knowing that the first payment has already been taken. Subsequent payments are made via Direct Debit.
Instant Bank Pay (IBP) is currently for UK customers only, and, if you are not seeing the IBP options in your form feeds this is because your Gravity Forms default currency is not set to Pound Sterling.
As with regular recurring payments, you have the option to enable account creation, which would make purchases easier for returning customers. The GoCardless customer reference is then stored in the user profile, saving the need for the customer to authorise subsequent payments via their bank each time.
Make a start by creating a form and then save it. We’ll add some fields later. In the form settings, select GoCardless and add a new feed.

Then, from the list of actions, select IBP Recurring Payment.

The feed name is auto generated; you can change it if you wish, it just needs to be unique.
Enter a payment description. As this will appear on GoCardless emails, it should be meaningful to the customer, reminding them what the payment is for (maximum 255 characters).
If the recurring amount will always be the same for this form, enter this amount. (The currency applied will be the default currency selected in the Gravity Forms settings.) There is no need to add a currency symbol. e.g. for £25.59 enter 25.59
If the recurring amount will depend the entries made on the form, for instance if accepting a donation of any amount, leave the amount field blank. You’ll need to add a field to the form to accept the amount. Usually this would be a Total field.
Save the feed. We will revisit this once we have added some fields to the form.
Adding fields to your form
A recurring payment form could be as simple as a button. Or it can contain many fields, spread over several pages. Generally, you’ll add fields to your form and then map them to their function in the feed settings of your form.
Of course, you probably will want to add various fields. Here are our recommendations.
Product fields and a Total field
The Gravity Forms form editor provides a group of fields called Pricing Fields. Adding these to your form brings you tons of flexibility to describe your product, add quantities, the option of a user-defined price (great for donations), tiered prices, shipping and more. You could add several products, turning your form into an order form – for instance, a menu.
If you also add a Total field, this will contain the sum of all amounts from the product fields.
We’ll set up this form to take a monthly subscription.

Returning to the feed, we’ve left the Amount blank and used the drop-down selector to map the Amount to the Total field, which will be the monthly subscription plus taxes. The taxes could simply be entered as a fixed amount but here we show you how to calculate the amount, by setting the field type to Calculation and entering a formula, using merge tags:

The amount in this Total field will be validated against the transaction minimum and transaction limit defined in the Gravity Forms GoCardless settings and when the form is submitted, this amount will be submitted to GoCardless for processing.

If you’d prefer to offer the customer a set of fixed choices, perhaps to accept regular donations with suggested amounts, you could change the field type of your product field to use selector buttons or a drop-menu menu instead, like this:

This will create a payment section field like this:

Recurring
The interval between payments can be on a weekly, monthly or yearly basis and also at set intervals of these. For example, every 6 weeks or every two months. You can select these values from the feed settings. Alternatively you can map a field on the form for the user to select the interval (weekly, monthly or yearly only).

To set this up, add a drop-down field to your form and, on the General tab, add the labels and values to the Choices area as shown. The labels can be what you like (e.g. the same but in a different language), but the entries in the Value column must be exactly as shown – ‘weekly’, ‘monthly’ and ‘yearly’. (These values also apply if you choose to use radio buttons.) If you don’t want to offer one of these payment options, just delete that choice.
Number of Payments
The number of payments can be set on the form feed, mapped to a number field on the form itself, or payments can be set to Continuing until further notice.
If the number of payments is fixed, enter the number of times the payment should be taken.

The number of payments cannot exceed the values defined by GoCardless and this is affected by the payment interval. WPdirectdebit will validate the number entered.
Date of first payment
The first payment is taken immediately by Instant Bank Pay so there is no provision to set this date. Further payments follow at the selected interval.
Password
Password verification is for use where you allow customers to have their own user accounts on your website. It adds a double layer of security to your form. Firstly the customer will need to be logged in; secondly the customer will not be able to submit the form if the password entered does not match their account password. You can add a password field by looking in the Advanced fields group offered by Gravity Forms. This will ensure the entered value is only used for verification and is not saved with the form.
If you include a password field, it should be set to Required. Set Confirm Password to Off. Set Enable Password Visibility Toggle to Enable. Do not Enable Password Strength.

To use this password field, you should map it in the Validation section of the feed.

Metadata
GoCardless allows you to tag a transaction with up to 3 items of metadata, consisting of a key and value pair. WPdirectdebit uses one of these pairs to add an order number to the transaction. (The order number is derived from the form’s entry ID and can be customised.)

The order metadata (WPD00/1202 in this example) has been added to this payment by WPdirectdebit. Other metadata, if configured on the form’s feed, would appear below.
You can add another pair by entering the metadata key on the form feed and mapping it to a value entered on the form, or selecting from several available values in the drop-down, such as the IP address of the user, or time of day etc.

Additional fields
If you allow users to register an account on your site, then you can add suitable account holder fields to your form to capture the user’s data.
Account Holder Username
Add a single-line text field for the username. You have two alternatives to a username field. You can map any text field or email field on the form to the Account Holder username in the registration settings, or you can use the customer ID generated by GoCardless.
Account Holder Email
If you allow users to register an account on your site, then you will need to capture the user’s email address. Add an email field to your form for this purpose and map it to the Account Holder Email in the registrations settings. If you do not map an email field then WPdirectdebit will register the account using the email address found in the GoCardless customer record.
Account Holder First Name and Last Name
If you allow users to register an account on your site, you’ll want to capture the user’s name. Add a Name field to your form for this purpose and map the First Name and Last Name to the Account Holder First Name and Last Name fields in the registrations settings. If you allow registrations but do not map name fields, the name will be coped from the GoCardless customer record.
NOTE: The account holder details entered on your form may not match the details on the customer’s GoCardless account. The customer is free to enter different details when completing checkout. This may sound like a problem because it allows for the payer to be different from the customer, but that can be useful. For example if you operate a membership site for children, the children can have their own account even if they do not have their own bank account.
Terms and conditions
It is always a good idea to get a record of the customer accepting your terms and conditions before you take their money. The Gravity Forms Consent field allows you to offer a “yes/no” consent checkbox and a detailed description of what is being consented to. It is available under the Advanced Fields section within the form editor.

By default, the form will be passed to WPdirectdebit for processing, and from there, over to GoCardless, but perhaps you also offer payment by credit card or by PayPal. By adding a payment method field to your form, the user can select their preferred payment method. With conditional logic you can test this field to find out which method they prefer and then disable all but the selected method. This avoids the possibility of them paying more than once.
Enabling and disabling registrations
The WordPress general settings include an option to disable registrations, and also an option to select the default role for new accounts as shown here:

These options are ignored by WPdirectdebit – WPdirectdebit can still register accounts even without this Membership option being checked, and the role assigned to users created by WPdirectdebit will be governed by the WPdirectdebit account settings.
You can disable registrations from any WPdirectdebit form via the Gravity Forms Settings. In the Gravity Forms main menu, select Forms, then select GoCardless and scroll down to the New Accounts settings. Uncheck ‘Enable new account creation’ and save the settings.

If you only want some forms to be able to register accounts, first make sure you’ve not disabled registrations as just described. Then look under the form feed settings for each of these forms. Scroll down to ‘Registration’ and check ‘Enable registrations’.

Complete the remaining fields to suit your needs and save your settings.
An example Instant Bank Pay recurring payment form

Our example form accepts a payment of £10 plus £2 taxes. The first payment will be collected immediately by Instant Bank Pay and subsequent payments will be made monthly by Direct Debit.
An account will be set up for the customer to simplify repeat payments. The username will be the customer’s email address.

Setting up the form feed
Gravity Forms passes the form entries over to each of the active feeds for the form. WPdirectdebit processes the data and passes it to GoCardless. This is the purpose of the feed. Read more about Gravity Forms feeds.

Confirmation settings
It’s important to define the confirmation settings, as GoCardless will need the URL of a page on your website to redirect the customer back to after completing the GoCardless checkout pages. You should set up a thank-you page landing page where you can tell the customer what to expect now that their recurring payment has been submitted, and then select this page in the confirmation settings.

Notifications
Notifications are not essential but recommended. These are emails that are automatically sent when selected events occur related to form submissions.
The default notification is to send an email to the site admininstrator. You’ll probably want to add a notification for the customer to remind them what they have agreed to, and here you can add any other information that you’d like the customer to know at this stage: your returns policy, customer service contact details etc.

Adding the form to your site
Gravity forms are embedded using shortcodes like this:
[gravityform id="67" title="true" description="true"]
Refer to the Gravity Forms documentation for more information.
