# Prefilling Existing Customer Details

Source: https://docs.gocardless.com/docs/optimise/prefill-customer-details/existing-customers

# Prefilling customer details with existing customer record

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. Supply the ID of an existing customer record via the `links[customer]` field in o apply it to the Billing Request.

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

```json
POST /billing_requests

  },
  "links": 
}
```

You will receive a full Billing Request, and the existing customer and customer billing details will be linked against it.

It will look like this:

```json
,
    "actions": [
      
        }
      },
      ...
    ],
    "resources": 
      }
    }
  }
}
```

## Create a Billing Request Flow

You can now proceed to create a Billing Request Flow to retrieve a link that can be provided to your customer to complete the request:

```json
POST /billing_request_flows

  }
}
```

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:

![Pre-filled Customer Details Form](/images/docs/optimise/prefill-customer-details/existing-customers/prefilled-form.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.

  
#### [Retain Customers with Fallbacks](/docs/optimise/retain-customers-with-fallbacks)

Offer a fallback payment method when bank authorisation fails.