---
title: "Prequalification"
description: "Show customers personalised loan amounts before they apply"
---

> For the complete documentation index, see [llms.txt](/llms.txt).

Prequalify your customers for lending offers before they've even applied.
Show them personalised loan amounts based on their business data, making your marketing more effective than generic campaigns.
Prequalification is only worthwhile if you can give us a reasonable indication of each customer's revenue – without it, we can't estimate an amount for them.

<Info>
**Not enabled by default.** The prequalification endpoint must be switched on for your account before you can use it.
To get started, contact your iwoca Partnership Manager or email [partners@iwoca.co.uk](mailto:partners@iwoca.co.uk).
</Info>

## What is prequalification?

Prequalification gives you estimated loan amounts for your customers without requiring them to complete a full application.
These prequalified offers show customers how much they could potentially borrow from iwoca, allowing them to make informed decisions about whether to proceed.

You can use prequalification quotes to:

- Surface offers within your application or dashboard
- Power targeted email campaigns
- Send push notifications to customers with relevant offers

<Info>
**Why implement prequalification?** We've found prequalification is a great mechanism to increase application rates, helping your customers get the funding they need.
</Info>

## How prequalification works

<Steps>
  <Step title="Share customer data">
    Upload your customers' business information through a CSV file via our API.
    You'll typically provide:

    - External customer ID (your internal reference)
    - Company registration number
    - SIC or MCC code (industry classification)
    - Average monthly turnover

    The CSV file can contain up to 1,000 unique customers per upload.
    You can share this file using the below endpoint:

    ```http
    POST /prequalification_data
    ```

    **Response:** You'll receive a `prequalification_data_id` — the ID of the processed file (a filename-style string) that you pass to `GET /prequalification_data` to retrieve the quotes.

    <Info>
    Check with your iwoca Partnership Manager about which data files are required.
    </Info>
  </Step>
  <Step title="We process automatically">
    Our system processes the shared data to create a prequalified offer of how much we think we could lend, if the customer were to be approved.
    At this stage, we don't run any credit decisions on your customer (we only do this when your customer applies for a loan).
  </Step>
  <Step title="Receive prequalification quotes">
    Once processing is complete, you can access prequalification quotes in two ways:

    **Option 1: Webhook with full quotes (recommended)**
    Receive the complete prequalification quotes directly in the webhook payload, allowing immediate access without an additional API call.
    For this option, you must subscribe to the following webhook:

    ```text
    prequalification_202505
    ```

    **Option 2: Webhook with file ID + API request**
    Receive a webhook notification containing the `prequalification_data_id` when quotes are ready.
    Use this ID to retrieve quotes via the API. For this option, subscribe to the following webhook:

    ```text
    prequalification_data_file_processed_202510
    ```

    You can then fetch all quotes or filter by `external_customer_id` or `prequalification_data_id`.
    Retrieve quotes at any time by calling:

    ```http
    GET /prequalification_data
    ```

    See the [Get Prequalification Data](/api-reference/prequalification/get-prequalification-data) endpoint reference for details.
  </Step>
  <Step title="Engage your customers">
    With the prequalified quotes, you can encourage customers to create an application through email campaigns, push notifications, or in-app messaging.

    Each prequalified quote covers a single customer and shows whether they're prequalified.
    If they are, it includes the prequalified offer amount. Some customers won't be prequalified because they don't qualify or we don't have enough data to generate a prequalified offer amount.

    Every prequalified quote has a `marketing_type` field which suggests how you should market to your customers.
    There are three options:

    | Marketing type | Description |
    |---|---|
    | `prequalified_marketing` | Customer is prequalified with a specific amount. Use the amount in your marketing. |
    | `generic_marketing` | Customer may be eligible but we can't determine a specific amount. Use generic lending marketing. |
    | `no_marketing` | Customer is not eligible. Do not market lending to this customer. |
  </Step>
  <Step title="Update quotes regularly">
    As long as you keep sharing your customers' turnover data, we regenerate prequalification quotes each time you send us a new file, so your offers stay current as businesses grow and circumstances change.
    Most partners send a new file monthly.

    You'll receive webhook notifications for each update, or you can retrieve the latest quotes via the API at any time.
  </Step>
</Steps>

## Prequalification webhooks

There are two webhook events for prequalification:

<AccordionGroup>
  <Accordion title="prequalification_202505 (recommended)">
    Fired when a prequalification data file has been processed.
    Contains the full quotes directly in the payload, so you don't need an additional API call.

    **Payload fields:** Array of `quote_id`, `external_customer_id`, `is_prequalified`, `prequalified_amount`, `marketing_type`

    ```json
    {
      "event_type": "prequalification_202505",
      "timestamp": "2026-01-15T10:30:00Z",
      "data": [
        {
          "quote_id": "1c6e2a6f-41ed-490e-8d05-87e34e756f7a",
          "external_customer_id": "16aa735d-9890-479d-8cce-89d5c1c1df3d",
          "is_prequalified": true,
          "prequalified_amount": 10000,
          "marketing_type": "prequalified_marketing"
        },
        {
          "quote_id": "97976169-e0ff-4b60-afd0-869133a49828",
          "external_customer_id": "c21a167f-7aef-47f1-aeb6-c4d2c3d7799d",
          "is_prequalified": false,
          "prequalified_amount": null,
          "marketing_type": "generic_marketing"
        }
      ]
    }
    ```

    **Marketing types:**

    | Type | Description |
    |---|---|
    | `prequalified_marketing` | Eligible with a predicted offer amount – show amount in marketing. |
    | `generic_marketing` | Could be eligible but no amount available – use generic marketing. |
    | `no_marketing` | Not eligible due to failing eligibility criteria – do not market. |
  </Accordion>
  <Accordion title="prequalification_data_file_processed_202510">
    Lighter alternative.
    Fired when a prequalification data file has been processed, but only contains the file identifier.
    Use this ID with `GET /prequalification_data` to retrieve the quotes.

    **Payload fields:** `prequalification_data_id`

    ```json
    {
      "event_type": "prequalification_data_file_processed_202510",
      "timestamp": "2026-01-15T10:30:00Z",
      "data": {
        "prequalification_data_id": "file-uploaded-for-prequalification.csv"
      }
    }
    ```
  </Accordion>
</AccordionGroup>

## From prequalification to application

When a prequalified customer is ready to apply, they follow the same application process as any other customer.
Kick off the application using the integration steps for your chosen path: [API Lite](/guides/integration-options/referral-api-integration#integration-steps) or [API Plus](/guides/integration-options/enhanced-integration#integration-steps).

---

## Next steps

<CardGroup cols={2}>
  <Card title="API reference" icon="code" href="/api-reference/prequalification/overview">
    Prequalification endpoint specifications
  </Card>
  <Card title="Webhooks" icon="bell" href="/guides/webhooks/overview">
    Set up real-time notifications
  </Card>
</CardGroup>
