> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fluz.app/llms.txt
> Use this file to discover all available pages before exploring further.

# KYC Autofill

> Request an identity decision using data Fluz already has on file for the customer — no identity fields to collect or submit.

KYC Autofill is the lowest-effort API verification method. You don't collect or submit any identity fields — Fluz resolves and verifies the customer's identity using data already on file (such as their registered phone number) and returns a decision in the same response.

Use it as your first API attempt whenever you want to avoid collecting identity data from the customer at all. If it declines, fall back to [SSN verification](/verify-customers-by-ssn) or [requesting an IDV URL](/verify-customers-by-documents).

<Info>
  **Prerequisites**

  * The `VERIFY_KYC` scope enabled on your application by Fluz. See [Required scope](/user-kyc-verification#required-scope).
  * A [user access token](/recipes/generate-user-access-token) generated for the customer being verified, including `VERIFY_KYC` in its scopes.
  * A registered webhook endpoint. See [Verify Customers](/user-kyc-verification#set-up-a-webhook).
</Info>

## How it works

The `verifyUserPrefillInformation` mutation is synchronous. The customer is identified entirely by the user access token — there is no input to collect or validate. Fluz screens the customer's data on file and returns `APPROVED`, `DECLINED`, `DUPLICATE`, or `ERROR` in the response body.

Fluz also emits a verification event to your webhook endpoint, so a single handler can process outcomes from every verification method consistently.

<Note>
  KYC Autofill runs once per customer, whether it approves or declines — a repeat call returns without re-attempting verification.
</Note>

## Request

The customer being verified is identified by the user access token in the `Authorization` header. There is no input to provide.

## Example

```javascript theme={null}
import { GraphQLClient, gql } from 'graphql-request';

const API_URL = 'https://transactional-graph.fluzapp.com/api/v1/graphql';

const VERIFY_USER_PREFILL_INFORMATION = gql`
  mutation verifyUserPrefillInformation {
    verifyUserPrefillInformation {
      status
      message
    }
  }
`;

const client = new GraphQLClient(API_URL, {
  headers: {
    Authorization: `Bearer <<USER_ACCESS_TOKEN>>`,
    'Content-Type': 'application/json',
  },
});

const response = await client.request(VERIFY_USER_PREFILL_INFORMATION);

console.log(response);
```

```json Response theme={null}
{
  "data": {
    "verifyUserPrefillInformation": {
      "status": "APPROVED",
      "message": "User verification successful"
    }
  }
}
```

## Handling the response

| Status      | What to do                                                                                                                                                                                        |
| :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `APPROVED`  | The customer is verified. Unlock the relevant functionality.                                                                                                                                      |
| `DECLINED`  | Escalate to [SSN verification](/verify-customers-by-ssn) or [document verification](/verify-customers-by-documents).                                                                              |
| `DUPLICATE` | The customer is verified, but their identity data matches another Fluz customer. Treat as verified and review for duplicate accounts on your side. Fluz does not disclose which customer matched. |
| `ERROR`     | Inspect `message`. The customer is either already verified or has exhausted their attempts.                                                                                                       |

## Testing

See [Testing KYC Flows](/test-kyc-flows) for the general staging setup — a developer account, an active application, and a user access token for the customer you're verifying.

<Warning>
  Deterministic staging test identities for KYC Autofill aren't published yet. Confirm expected outcomes with the platform team before relying on them in an automated test suite.
</Warning>
