# Prefilling Billing Request Flow

Source: https://docs.gocardless.com/docs/optimise/prefill-customer-details/billing-request-flow

# Prefilling customer details into Billing Request Flow

If you already hold information about your customer (the payer), you can provide this information before sending your customer through a Billing Request Flow. As a result of prefilling customer data, the customer will need to perform fewer steps to complete their payment flow. This leads to a more seamless experience with less friction for the customer and will result in higher conversion.

There are three ways that prefilling can be done.

1. **[Collect Customer Details](/docs/collect-payments/setting-up-mandates) endpoint** — Creates a fully pre-populated customer record so the customer skips the details page. Requires [GoCardless Pro](https://gocardless.com/pricing) or [GoCardless Enterprise](https://gocardless.com/pricing) with the [custom payment pages upgrade](https://support.gocardless.com/hc/en-gb/articles/115003734705-Custom-payment-pages).
2. **Existing customer record** — Link an existing customer ID to the Billing Request. The customer's details are already known and they skip the customer details page entirely.
3. **Billing Request Flows API** — Pass prefilled values into the Billing Request Flow. The customer sees their details pre-populated in the form and only needs to confirm them.

This flowchart explains which of the above methods you would use for various situations:

![Billing Request Prefilling workflow choices](/images/docs/optimise/prefill-customer-details/br_prefilling_choices.png)

This doc explains how to prefill customer details using each of these approaches before sending someone into a Billing Request Flow.

> **Info:**
> When customer details are captured on a billing request, GoCardless automatically shows an email
>   verification prompt when the authorisation link is opened. [See how Customer Email Check
>   works.](/docs/optimise/prefill-customer-details/customer-email-check)

## Create a Billing Request

Create a Billing Request for whatever resources you want to create - our example will ask for a payment of £5. Omitting a customer ID means we'll create a new, blank customer linked against the request.

Use the [Create a Billing Request](/docs/api-reference/billing-request#create-a-billing-request) endpoint:

```json
POST /billing_requests

  }
}
```

You will receive a full Billing Request. This will contain new customer and customer billing details linked against it which are empty.

It will look like this:

```json
,
    "links": 
  }
}
```

## Create a Billing Request Flow With Prefilled Customer Details

Create a Billing Request Flow to retrieve a link that can be provided to your customer to complete the request. Provide prefilled customer details in this request:

```json
POST /billing_request_flows
,
    "links": 
  }
}
```

This returns the Billing Request Flow:

```json

  }
}
```

If the customer visits the `authorisation_url`, they will begin the checkout flow asking for their customer details, but with given and family name already prefilled:

![Prefilled Billing Request Flow Form](/images/docs/optimise/prefill-customer-details/billing-request-flow/screenshot_2022-08-10_at_15.59.42.png)

The customer can amend any of the prefilled information and complete those fields that haven't been prefilled.

## Final note

It's worth noting that this same functionality means customers who leave the flow and come back later will resume from where they left off.

## What's next?

  
#### [Prefilling Overview](/docs/optimise/prefill-customer-details)

Compare all three prefilling approaches.

  
#### [Billing Requests API Reference](/docs/api-reference/billing-request)

Full reference for the Billing Requests API.