---
title: "Initialise a Billing Request Flow"
method: POST
path: "/billing_request_flows/{billing_request_flow_id}/actions/initialise"
tags: ["Billing Request Flow"]
---

# Initialise a Billing Request Flow

`POST /billing_request_flows/{billing_request_flow_id}/actions/initialise`

## Request

- Base URL: `https://api.gocardless.com`
- URL: `https://api.gocardless.com/billing_request_flows/{billing_request_flow_id}/actions/initialise`
- Auth: HTTP bearer

Returns the flow having generated a fresh session token which can be used to power
integrations that manipulate the flow.

## Path parameters

- `billing_request_flow_id` string, required

## Headers

- `GoCardless-Version` string, required

## Response `200`

Action completed successfully

- BillingRequestFlowSingleResourceResponse
  - `billing_request_flows` BillingRequestFlow: Billing Request Flows can be created to enable a payer to authorise a payment created for a scheme with strong payer authorisation (such as open banking single payments).
    - `id` string, required: Unique identifier, beginning with "BRF".
    - `redirect_uri` string, nullable: URL that the payer can be redirected to after completing the request flow.
    - `skip_success_screen` boolean: If true, the payer will not be redirected to the success screen after completing the flow. A redirect_uri needs to be provided for this parameter to be taken into account.
    - `exit_uri` string, nullable: URL that the payer can be taken to if there isn't a way to progress ahead in flow, for example if the customer searches for a bank that doesn't exist or isn't supported on the scheme.
    - `show_redirect_buttons` boolean: If true, the payer will be able to see redirect action buttons on Thank You page. These action buttons will provide a way to connect back to the billing request flow app if opened within a mobile app. For successful flow, the button will take the payer back the billing request flow where they will see the success screen. For failure, button will take the payer to url being provided against exit_uri field.
    - `show_success_redirect_button` boolean: If true, the payer will be able to see a redirect action button on the Success page. This action button will provide a way to redirect the payer to the given redirect_uri. This functionality is helpful when merchants do not want payers to be automatically redirected or on Android devices, where automatic redirections are not possible.
    - `authorisation_url` string: URL for a GC-controlled flow which will allow the payer to fulfil the billing request
    - `created_at` string, date-time: Timestamp when the flow was created
    - `expires_at` string, date-time: Timestamp when the flow will expire. Each flow currently lasts for 7 days.
    - `session_token` string, nullable: Session token populated when responding to the initialise action
    - `auto_fulfil` boolean: (Experimental feature) Fulfil the Billing Request on completion of the flow (true by default). Disabling the auto_fulfil is not allowed currently.
    - `lock_bank_account` boolean: If true, the payer will not be able to change their bank account within the flow. If the bank_account details are collected as part of bank_authorisation then GC will set this value to true mid flow. You can only lock bank account if these have already been completed as a part of the billing request.
    - `lock_currency` boolean: If true, the payer will not be able to change their currency/scheme manually within the flow. Note that this only applies to the mandate only flows - currency/scheme can never be changed when there is a specified subscription or payment.
    - `lock_customer_details` boolean: If true, the payer will not be able to edit their customer details within the flow. If the customer details are collected as part of bank_authorisation then GC will set this value to true mid flow. You can only lock customer details if these have already been completed as a part of the billing request.
    - `prefilled_customer` BillingRequestFlowPrefilledCustomer, nullable: Customer information used to prefill the payment page so your customer doesn't have to re-type details you already hold about them. It will be stored unvalidated and the customer will be able to review and amend it before completing the form.
      - `email` string, nullable: Customer's email address.
      - `given_name` string, nullable: Customer's first name.
      - `family_name` string, nullable: Customer's surname.
      - `company_name` string, nullable: Customer's company name. Company name should only be provided if `given_name` and `family_name` are null.
      - `address_line1` string, nullable: The first line of the customer's address.
      - `address_line2` string, nullable: The second line of the customer's address.
      - `address_line3` string, nullable: The third line of the customer's address.
      - `city` string, nullable: The city of the customer's address.
      - `region` string, nullable: The customer's address region, county or department.
      - `postal_code` string, nullable: The customer's postal code.
      - `country_code` string, nullable: [ISO 3166-1 alpha-2 code.](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements)
      - `swedish_identity_number` string, nullable: For Swedish customers only. The civic/company number (personnummer, samordningsnummer, or organisationsnummer) of the customer.
      - `danish_identity_number` string, nullable: For Danish customers only. The civic/company number (CPR or CVR) of the customer.
      - `language` string, nullable: [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) code. Used as the language for the payment page.
      - `phone_number` string, nullable: The customer's phone number.
    - `prefilled_bank_account` BillingRequestFlowPrefilledBankAccount, nullable: Bank account information used to prefill the payment page so your customer doesn't have to re-type details you already hold about them. It will be stored unvalidated and the customer will be able to review and amend it before completing the form.
      - `account_type` 'savings' | 'checking', nullable: Bank account type for USD-denominated bank accounts. Must not be provided for bank accounts in other currencies. See [local details](https://docs.gocardless.com/docs/api-reference/local-bank-details#united-states) for more information.
    - `language` string, nullable: Sets the default language of the Billing Request Flow and the customer. [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) code.
    - `links` BillingRequestFlowLinks
      - `billing_request` string, required: ID of the [billing request](https://docs.gocardless.com/docs/api-reference/billing-request) against which this flow was created.
    - `customer_details_captured` boolean: Identifies whether a Billing Request belongs to a specific customer

## Other responses

- `400`: Bad Request
- `401`: Unauthorised
- `404`: Not found
- `422`: Validation Error
- `500`: Internal Error

---

[API](https://skmtc.dev/gocardless/apis/gocardless-api.md) - [All operations](https://skmtc.dev/gocardless/apis/gocardless-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gocardless/apis/gocardless-api/revisions/4dd3dae45364?raw)
