# Add background verification report for staff member

This cookbook explains how to upload a **background verification (BGV) report** for a staff member using the Sprinto Developer API.

Uploading a BGV report is mandatory for in-scope staff members to meet people-management and compliance requirements in Sprinto.

This operation is performed using a GraphQL **mutation**.

***

### Before you begin

Ensure that you have:

* A valid **API key**
* Access to the Sprinto API Playground (if using the playground)
* The **email address** of the staff member
* The **BGV report file**
* The **verification completion date**

The staff member must be **active** and **in-scope**. If these conditions are not met, the API returns an error.

***

### API status

The Sprinto Developer API is currently in beta.

* Endpoints and schema fields may change as new functionality is introduced.

***

### Mutation: `uploadBackgroundVerificationReport`

This mutation uploads a BGV report for a staff member and records the date on which verification was completed.

#### Input arguments

<table><thead><tr><th width="230.6328125">Argument</th><th width="111.74609375">Type</th><th width="115.57421875">Required</th><th>Description</th></tr></thead><tbody><tr><td><code>email</code></td><td>String</td><td>Yes</td><td>Email address of the staff member</td></tr><tr><td><code>verificationCompletedOn</code></td><td>DateTime</td><td>Yes</td><td>Date on which background verification was completed</td></tr><tr><td><code>verificationReportFile</code></td><td>Upload</td><td>Yes</td><td>BGV report file to upload</td></tr></tbody></table>

***

### Example mutation

{% tabs %}
{% tab title="Query" %}

```graphql
mutation UploadBackgroundVerificationReport(
  $email: String!,
  $verificationCompletedOn: DateTime!,
  $verificationReportFile: Upload!
) {
  uploadBackgroundVerificationReport(
    email: $email,
    verificationCompletedOn: $verificationCompletedOn,
    verificationReportFile: $verificationReportFile
  ) {
    message
  }
}
```

{% endtab %}

{% tab title="Response" %}

```json
{
  "data": {
    "uploadBackgroundVerificationReport": {
      "message": "BGV report is added for the staff"
    }
  }
}
```

{% endtab %}
{% endtabs %}

**Try yourself**: [United States](https://app.sprinto.com/dev-api/explorer): [Europe](https://eu.sprinto.com/dev-api/explorer): [India](https://in.sprinto.com/dev-api/explorer)

***

### Uploading files in the API Playground

When using the Sprinto API Playground:

1. In the **Variables** section, add the key `verificationReportFile`.
2. Select **Choose files** and attach the BGV report.
3. Ensure the file key matches the mutation argument name exactly.

<figure><img src="/files/30zdI6ZaJhMlqALhVp5D" alt="" width="563"><figcaption></figcaption></figure>

***

### Supported file formats

The following file formats are supported for BGV uploads:

* `.text`, `.txt`
* `.doc`, `.docx`, `.dotx`, `.odt`
* `.pdf`
* `.zip`
* `.xls`, `.xlsx`

Uploading unsupported file formats results in an error.

***

### Response fields

<table><thead><tr><th width="100.68359375">Field</th><th width="99.49609375">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>message</code></td><td>String</td><td>Message indicating success or failure of the upload</td></tr></tbody></table>

***

### Response codes and errors

The following response codes may be returned for this mutation:

<table><thead><tr><th width="125.52734375">Status code</th><th width="180.03515625">Status</th><th>Message</th><th>Reason</th></tr></thead><tbody><tr><td>200</td><td>Success</td><td>BGV report is added for the staff.</td><td>The report was uploaded successfully.</td></tr><tr><td>200</td><td>Error</td><td>Invalid email address or a non-staff account.</td><td>The email does not belong to a valid staff account or is marked as non-staff.</td></tr><tr><td>200</td><td>Error</td><td>Offboarded staff.</td><td>The staff member must be active to upload a BGV report.</td></tr><tr><td>200</td><td>Error</td><td>Staff not in scope.</td><td>Only in-scope staff members can have BGV reports uploaded.</td></tr><tr><td>200</td><td>Error</td><td>Unable to upload this file format.</td><td>The uploaded file format is not supported.</td></tr><tr><td>401</td><td>Unauthorized</td><td>Invalid API token.</td><td>The API key is invalid or revoked.</td></tr><tr><td>429</td><td>Too many requests</td><td>Too many requests. Please try again later.</td><td>The API rate limit has been exceeded.</td></tr></tbody></table>

***

### Next steps

After uploading a BGV report, you can:

* Verify staff compliance status using queries
* Upload additional evidence for workflow checks
* Automate BGV uploads as part of onboarding workflows


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sprinto.com/api-references/sprinto-cookbooks/add-background-verification-report-for-staff-member.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
