Guides

Bank Payments
Overview
Setting up mandatesDirect Debit Mandates Verified Mandates PayTo Agreements and Payments Build a client to create mandates offline Supporting mandates set up outside of your product Importing Mandates Blocking mandates
One-off paymentsTaking an Instant Bank Payment Taking a one off payment
Recurring paymentsTaking Subscription payments Taking Instalment payments Variable Recurring Payments
Combining one-off and recurring paymentsTake a first Instant Payment with mandate
 set up
Responding to eventsResponding to Mandate Events Responding to Billing Requests Events
FX Payments Reconciling Payouts ACH and PAD Consent Types

Billing Request (Instant Bank Pay feature)

Using the JavaScript Drop-in

This guide shows how to use the Javascript Drop-in to allow customers to complete the Billing Request Flow without leaving the integrator’s site.

Use the Drop-in when you already have a frontend website, and want to benefit from having customers stay on your site, and avoiding site-to-site redirects.

Preview the React Drop-in

Installation

Create

React Drop-in Example

1import React, { useCallback, useState } from "react"; 2import { 3 useGoCardlessDropin, 4 GoCardlessDropinOptions, 5 GoCardlessDropinOnSuccess, 6} from "@gocardless/react-dropin"; 7 8// Display a button that opens the Dropin on click, starting a checkout 9// flow for the specified Billing Request Flow. 10const DropinButton = (options: GoCardlessDropinOptions) => { 11 const { open } = useGoCardlessDropin({ ...options }); 12 13 return ( 14 <button type="button" onClick={() => open()}> 15 Start Dropin for <code>{options.billingRequestFlowID}</code> in{" "} 16 <code>{options.environment}</code> 17 </button> 18 ); 19}; 20 21// Example checkout flow, where we create a Billing Request Flow ID by talking 22// with our backend API. 23const App: FunctionComponent = () => { 24 const [flowID, setFlowID] = useState<string | null>(null); 25 26 // Build your backend with an API endpoint that: 27 // 28 // 1. Creates a Billing Request for the resources you wish to create 29 // 2. Create a Billing Request Flow against (1) 30 // 3. Return the ID from (2) 31 // 32 // See an example of this at Taking an Instant Bank Payment: 33 // https://developer.gocardless.com/getting-started/billing-requests/taking-an-instant-bank-payment/ 34 React.useEffect(() => { 35 async function createFlow() { 36 // Expecting a JSON body like: 37 // { 38 // "flow_id": "BRF123456" 39 // } 40 let response = await fetch("/api/flows", { 41 method: "POST", 42 }); 43 const { flow_id } = await response.json(); 44 setFlowID(flow_id); 45 } 46 createFlow(); 47 }, []); 48 49 // Only show the button once we have a Billing Request Flow ID 50 return flowID === null ? ( 51 <div className="loader"></div> 52 ) : ( 53 <DropinButton billingRequestFlowID={flowID} environment={"live"} /> 54 ); 55};

What’s next?

First instant payment with mandate Direct Debit set up

Get started

Collect Verified Mandates

Collect Direct Debit Mandates

Billing Request overview