Download OpenAPI specification:Download
This page contains information on how to use the Funding Circle Introducer API.
We believe that small businesses deserve access to finance that’s quick and hassle-free.
That’s why we have launched a Funding Circle lending API. Our API makes it fast, simple and straightforward for introducers to offer Funding Circle loans from within their own website, platform or mobile app.
To learn more about our introducer opportunities, visit us at https://www.fundingcircle.com/introducers/. To gain access to our Sandbox, email us at broker@fundingcircle.com.
The API is under OAuth 2.0 Client Credentials Grant flow. In order to make a request, your client must be authorised.
The first step is to generate an access_token. In order to generate this, submit a POST request to the Authentication endpoint passing a base-64 token generated from your unique client_id:client_secret.
curl --request POST \
--url "https://auth.sandbox.api.fundingcircle.co.uk/oauth2/token" \
--header "Authorization: Basic $(echo -n 'client_id:client_secret' | base64)" \
--data-urlencode "grant_type=client_credentials"
The access_token is valid for only 24 hours and must be set in the HTTP header of each request.
Authorization: Bearer eyJraWQiOiJkd1ZKOFFhaGNcL2V4bFBwRUN3TDVNaTA3YmRqOFhNK3MzY.....
Important: You must not include the access_token when making a PUT request to upload a document.
An x-amzn-trace-id header will be returned with each request. We can use this ID to debug problems you may have with a particular API request. Ideally, you should store the x-amzn-trace-id of your requests so you can help us look into a specific one, if required.
We follow the error response format proposed in RFC 7807 also known as Problem Details for HTTP APIs. As with our normal API responses, your client must be prepared to gracefully handle additional members of the response.
This response means that the API cannot process your request due to something that is perceived to be a client error (e.g., malformed request query, invalid request body, or deceptive request routing). To resolve this, please ensure that the request syntax is correct and includes all mandatory fields.
This response means that the API cannot process your request due to a wrongly typed or malformed path parameter. To resolve this, please ensure that the parameter value matches the expected pattern.
This response means that your client is not authorised to access the API. Please make sure you've called the Auth endpoint first to fetch the access_token. Note that each token is valid for only 24 hours.
This response means that your access_token might be valid, but you're temporarily not allowed to access the API.
This response means that the API understands the request, but refuses to authorise it. To resolve this, please ensure you have permission to access the resource.
This response means that the API has processed your request, but the resource could not be found.
This response means that the API has processed your request, but the resource has now permanently expired.
This response means that the API refuses to accept the request because of the payload format. To resolve this, please select content-type application/json.
This response means that the API has processed the request, but the client is not allowed to proceed. Some of the reasons are:
This response means that the requested action couldn't be performed because it depends on another action that has failed.
Our sandbox environment provides predefined test scenarios using specific values. To test successfully, you must use the exact values listed below - other values will not work as expected.
To test different eligibility outcomes, use one of these specific companies_house_id values in your loan application requests:
00000000 - company with low eligibility00000001 - company with medium eligibility 00000002 - company with high eligibilityImportant: Any other companies_house_id value will return not-eligible, simulating a company that doesn't qualify for Funding Circle products.
To test different loan application journeys, use one of these specific business_name values in your loan application requests:
Bighead Catshark Ltd - successful application with a credit offerBlotchy Swellshark Ltd - application that requires additional documentationLoop Shark Ltd - application that remains in processingBroadmouth Shark Ltd - rejected applicationInflight Shark Ltd - error scenario (ongoing application from the same company)Important: Using any other business name (or no business name) will result in an application that remains in "processing" indefinitely.
Current Limitation: Once you upload and submit documents, the loan application status will change to "in progress" and remain in this status indefinitely.
Submit a complete loan application for a term loan through a simple, step-by-step process. Make a POST request to start the application process
and use the returned links to monitor processing status. You will receive either a credit decision or a request for additional information
If needed, use our endpoints to securely upload required files.
Some of our endpoints use background processing following the Microsoft Asynchronous Request-Reply Pattern.
This means you'll get an immediate response with a placeholder, then you can poll using the provided UUID to get the final result.
Most applications receive instant decisions, but some require additional documentation before credit decision can be made.
Some endpoints are marked with because they don't have to be called for every application.
Submit a term loan application for processing. Credit reports will be pulled for the company and any supplied EBOs (Executive Business Owners).
The duration of processing will vary depending on the loan details, availability of 3rd party data providers and internal Funding Circle business rules. Successful calls to this endpoint contain a link to a status resource containing any available information on the expected duration.
Important
If you are a broker, you must submit client_consent and broker_commission.
If you are a partner, you should not submit client_consent and broker_commission, as they will be ignored.
| callback_url | string^https:\/\/[\w\.-]{2,}\.[\D]{2,}\b([-\w_.?&\/... If included in the request, when an action is required or a decision is made, we will call your webhook using the payload described in the callbacks section. |
| partner_reference | string [ 1 .. 36 ] characters A free value supplied by the partner for their own reference, e.g. an internal identifier for the customer or loan. |
required | object A reference uniquely identifying a business. This must contain the Companies House ID. |
required | Array of objects non-empty unique List of Executive Business Owners (EBOs). These are shareholders that play a day-to-day role in the business and hold ownership of up to 50% or more of the applicant company. Names need to match what is listed in Companies House. |
required | object Information about the applicant. This must be a director of the business. |
required | object Please provide the following inputs for the company requesting finance. |
required | object Information about the loan. |
required | object Purpose of the loan. |
object Client consent fields must be provided by all brokers. If you are a partner then these fields are not required. | |
| broker_commission | number (Amount between 0-6%, must be an incremental input of 0.5%) Enum: 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 Commission rate must be included for all broker requests. The max commission you can charge will be determined by your Tier. Tier 1 can charge up to 6%, Tier 2, up to 5.5%, and, Tier 3, up to 5%. For more information on your Tier, please contact your Account Manager. If you are set up as a partner, your commission will be pre-determined by our partner agreement. Therefore, partners do not need to send a commission amount as this will be ignored. |
{- "partner_reference": "HG79872",
- "business_reference": {
- "companies_house_id": "SC645837",
- "business_name": "FUNDING CIRCLE LTD"
}, - "ebo_list": [
- {
- "ebo_name": {
- "first_name": "John",
- "last_name": "Smith"
}, - "dob": "1977-01-27",
- "percent_shares_held": 60.25,
- "current_address": {
- "house_number_or_name": "18",
- "postcode": "E1W 3AZ"
}
}
], - "customer_info": {
- "contact_name": {
- "first_name": "John",
- "last_name": "Smith"
}, - "email": "john.smith@example.com",
- "phone_number": "+441632960045"
}, - "business_info": {
- "company_type": "Limited Company",
- "self_stated_industry": "Finance",
- "full_time_employees": 2,
- "self_stated_turnover": {
- "currency": "GBP",
- "value": 800000
}, - "profit_loss_amount": {
- "currency": "GBP",
- "value": 50000
}, - "overdraft_maximum_available": {
- "currency": "GBP",
- "value": 0
}, - "overdraft_current_usage": {
- "currency": "GBP",
- "value": 0
}, - "other_debt_amount": {
- "currency": "GBP",
- "value": 0
}, - "self_stated_2019_turnover": {
- "currency": "GBP",
- "value": 700000
}, - "company_established_or_registered_in_northern_ireland": false,
- "company_part_of_group_operating_in_northern_ireland": false,
- "company_provides_specific_service_to_northern_ireland": false
}, - "loan_info": {
- "amount_requested": {
- "currency": "GBP",
- "value": 30000
}, - "term_requested_months": 72
}, - "loan_purpose": {
- "type": "Expansion/growth",
- "buy_land_property_to_rent": false,
- "change_of_business": false,
- "settle_personal_debt": false,
- "opportunity_outside_uk": false,
- "other_company": false
}, - "client_consent": {
- "client_application_consent": true,
- "client_agreement_privacy_and_tac": true
}, - "broker_commission": 0.5
}{- "type": "BAD_REQUEST_BODY",
- "title": "Invalid request body",
- "detail": "[Object has missing required properties (['some_property'])]"
}{- "callback_uuid": "a5764857-ae35-34dc-8f25-a9c9e73aa898",
- "created_at": "2017-07-21T17:32:28Z",
- "submitted_at": "2017-07-21T17:32:28Z",
- "status_uri": "/loan_application_status/a5764857-ae35-34dc-8f25-a9c9e73aa898"
}Submit a FlexiPay application for processing. Credit reports will be pulled for the company and any supplied EBOs (Executive Business Owners). The duration of processing will vary depending on the loan details, availability of 3rd party data providers and internal Funding Circle business rules. Successful calls to this endpoint contain a link to a status resource containing any available information on the expected duration.
| broker_email | string <email> [ 1 .. 80 ] characters ^.+@.+$ Email address of the associated broker, if applicable. This allows to tag them for commission. Brokers must be registered under the same organisation using the API. |
required | object A reference uniquely identifying a business. This must contain the Companies House ID. |
required | Array of objects non-empty unique List of Executive Business Owners (EBOs). These are shareholders that play a day-to-day role in the business and hold ownership of up to 50% or more of the applicant company. Names need to match what is listed on companies house. |
required | object Information about the applicant. This must be a director of the business. |
required | object Please provide the following inputs for the company requesting finance. |
{- "broker_email": "john.smith@example.com",
- "business_reference": {
- "companies_house_id": "SC645837",
- "business_name": "FUNDING CIRCLE LTD"
}, - "ebo_list": [
- {
- "ebo_name": {
- "first_name": "John",
- "last_name": "Smith"
}, - "dob": "1977-01-27",
- "percent_shares_held": 60.25,
- "current_address": {
- "house_number_or_name": "18",
- "postcode": "E1W 3AZ"
}
}
], - "customer_info": {
- "contact_name": {
- "first_name": "John",
- "last_name": "Smith"
}, - "email": "john.smith@example.com",
- "phone_number": "+441632960045"
}, - "business_info": {
- "company_type": "Limited Company",
- "self_stated_turnover": {
- "currency": "GBP",
- "value": 800000
}, - "profit_loss_amount": {
- "currency": "GBP",
- "value": 50000
}, - "overdraft_maximum_available": {
- "currency": "GBP",
- "value": 0
}, - "other_debt_amount": {
- "currency": "GBP",
- "value": 0
}
}
}{- "type": "BAD_REQUEST_BODY",
- "title": "Invalid request body",
- "detail": "[Object has missing required properties (['some_property'])]"
}Retrieves a resource that describes the current status of a submitted loan application. This endpoint is intended to be polled and clients should adjust their polling frequency as follows:
| Interval | Polling frequency |
|---|---|
| 0 to 2 minutes | Every second |
| 2 to 10 minutes | Every minute |
| 10 minutes to 6 hours | Every hour |
| 6 hours and over | Every 12 hours |
| Interval | Polling frequency |
|---|---|
| 0 to 2 minutes | Every second |
| 2 minutes and over | Every 12 hours |
| loan_application_uuid required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Example: 22e0ee76-e496-4488-b813-2de2c90c5e0f Unique identifier for the loan application. |
{- "loan_application_uuid": "a5764857-ae35-34dc-8f25-a9c9e73aa898",
- "reason": "processing",
- "created_at": "2017-07-21T17:32:28Z",
- "updated_at": "2017-07-21T17:32:28Z",
- "_links": {
- "self": {
- "href": "/loan_application_status/a5764857-ae35-34dc-8f25-a9c9e73aa898"
}
}
}Retrieve the current status of a processed loan application. The loan application can have one of the following statuses:
in_progress - the application is actively being processedaction_required - the application requires an action to be taken before a decision can be made. See more details on how to upload documents heredecision_made - a credit decision has been made. A link to the decision is provided| loan_application_uuid required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Example: 22e0ee76-e496-4488-b813-2de2c90c5e0f Unique identifier for the loan application. |
{- "status": "in_progress",
- "loan_application_uuid": "22e0ee76-e496-4488-b813-2de2c90c5e0f",
- "loan_application_details": {
- "partner_reference": "HG79872",
- "business_reference": {
- "companies_house_id": "SC645837",
- "business_name": "FUNDING CIRCLE LTD"
}, - "ebo_list": [
- {
- "ebo_name": {
- "first_name": "John",
- "last_name": "Smith"
}, - "dob": "1977-01-27",
- "current_address": {
- "house_number_or_name": "18",
- "postcode": "E1W 3AZ"
}
}
], - "customer_info": {
- "contact_name": {
- "first_name": "John",
- "last_name": "Smith"
}, - "email": "john.smith@example.com",
- "phone_number": "+441632960045"
}, - "business_info": {
- "company_type": "Limited Company",
- "self_stated_industry": "Finance",
- "full_time_employees": 2,
- "self_stated_turnover": {
- "currency": "GBP",
- "value": 800000
}, - "profit_loss_amount": {
- "currency": "GBP",
- "value": 50000
}, - "overdraft_maximum_available": {
- "currency": "GBP",
- "value": 0
}, - "overdraft_current_usage": {
- "currency": "GBP",
- "value": 0
}, - "other_debt_amount": {
- "currency": "GBP",
- "value": 0
}, - "self_stated_2019_turnover": {
- "currency": "GBP",
- "value": 700000
}, - "company_established_or_registered_in_northern_ireland": false,
- "company_part_of_group_operating_in_northern_ireland": false,
- "company_provides_specific_service_to_northern_ireland": false
}, - "loan_info": {
- "amount_requested": {
- "currency": "GBP",
- "value": 30000
}, - "term_requested_months": 72
}, - "loan_purpose": {
- "type": "Expansion/growth",
- "buy_land_property_to_rent": false,
- "change_of_business": false,
- "settle_personal_debt": false,
- "opportunity_outside_uk": false,
- "other_company": false
}, - "broker_commission": 0.5
}, - "_links": {
- "self": {
- "href": "/loan_application/cdbce47c-85a7-3f2d-9ede-8adc37087d59"
}
}
}Retrieve the decision for a processed loan application. The decision status can be one of the following:
provisional_offer - the application was successful, and a provisional offer is contained within the payloadoffered - the application process has been completed, and the final offer details are contained within the payloadrejected - the application was not successful, and a high-level reason for the rejection is contained within the payloadaction_required - the application requires an action to be taken before a decision can be made. See more details on how to upload documents here| loan_application_uuid required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Example: 22e0ee76-e496-4488-b813-2de2c90c5e0f Unique identifier for the loan application. |
{- "created_at": "2019-08-24T14:15:22Z",
- "status": "action_required",
- "actions": [
- "amend_bank_statements"
], - "amend_bank_statements_reasons": [
- {
- "reason": "date_range",
- "description": "Unacceptable last transaction date. Bank statements should cover the last 6 months."
}
], - "_links": {
- "self": {
- "href": "/loan_application/cdbce47c-85a7-3f2d-9ede-8adc37087d59/decision"
}, - "upload_api": {
- "href": "/loan_application/cdbce47c-85a7-3f2d-9ede-8adc37087d59/document_upload_url"
}, - "loan_application": {
- "href": "/loan_application/cdbce47c-85a7-3f2d-9ede-8adc37087d59"
}
}
}Get a document upload URL when an action is required.
A pre-signed URL can be used to upload documents. Documents can only be uploaded when an application has one of the following required actions:
upload_bank_statements - upload bank statements for the last 6 monthsamend_bank_statements - re-upload bank statements, if the previous upload had incorrect or insufficient dataupload_filed_accounts - upload the most recent set of financial statementsThe upload must be completed with a PUT request with the header x-amz-server-side-encryption:aws:kms. For this request, do not include the access_token:
curl ${document_upload_url} -X PUT -T ./document.pdf -H "x-amz-server-side-encryption:aws:kms"
Each pre-signed URL has a lifespan of 30 seconds and can be used to upload a single document.
Documents must be in PDF format with a maximum file size of 100 MB.
| loan_application_uuid required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Example: 22e0ee76-e496-4488-b813-2de2c90c5e0f Unique identifier for the loan application. |
{- "s3_key": "999d22d5-f5dc-4726-955a-f86b1ca34aa3/bank_statement_1.pdf",
- "_links": {
- "self": {
- "href": "/loan_application/a5764857-ae35-34dc-8f25-a9c9e73aa898/document_upload_url"
}
}
}Submit the required action when documents have been uploaded.
The duration of processing will vary depending on the number of documents.
| loan_application_uuid required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... Example: 22e0ee76-e496-4488-b813-2de2c90c5e0f Unique identifier for the loan application. |
| s3_keys required | Array of strings [ 1 .. 30 ] items unique List of s3 keys representing uploaded documents. |
{- "s3_keys": [
- "999d22d5-f5dc-4726-955a-f86b1ca34aa3/document_1.pdf",
- "999d22d5-f5dc-4726-955a-f86b1ca34aa3/document_2.pdf"
]
}{- "type": "BAD_REQUEST_BODY",
- "title": "Invalid request body",
- "detail": "[Object has missing required properties (['some_property'])]"
}