# Thumbprint Quickstart

This Quickstart applies to Thumbprint.

**Note:** *Thumbprint is our stand-alone fraud detection product.  It uses a subset of the PDF Insights API.*

## 1. Verify your credentials

Verify that you can log into the [Thumbprint UI](https://insights.moneythumb.com) using your username and password.

## 2. Authenticate to the API

Call `GET https://insights.moneythumb.com/api/v1.5/authenticate`.

Include the following headers:

| Header | Value |
|  --- | --- |
| `Authorization` | `Basic [base64-encoded username:password]` |
| `MT-Product` | `thumbprint` |


No request body is required.

You should receive a `200 OK` response with a session token in the response body.

For further details, see:

* [/authenticate endpoint](https://docs.moneythumb.com/pdf-insights/api-reference/other/authenticate)
* [Authentication overview](https://docs.moneythumb.com/pdf-insights/2_authentication)


## 3. Get a Thumbprint score

Call `POST https://insights.moneythumb.com/api/v1.5/uploadpdfs`.

Include the following headers:

| Header | Value |
|  --- | --- |
| `Authorization` | `Bearer [session token]` |
| `MT-Product` | `thumbprint` |
| `Content-Type` | `multipart/form-data` |


Include the following form-data fields in the body:

| Name | Type | Value |
|  --- | --- | --- |
| `appnumber` | string | Any string to identify this application. |
| `pdf-filename` | blob | The file (ie bank statement) to upload. |


You should receive a `200 OK` response with a reponse body matching this structure:


```
{ 
  statement_summmaries: [],
  appinfo: {}
}
```

Within the `statement_summaries` objects, look for the `fraudscore` and `tpreasons` properties.

For further details, see the [/uploadpdfs endpoint](https://docs.moneythumb.com/pdf-insights/api-reference/other/uploadpdfs).

## 4. Provide a callback

Image documents are processed asynchronously and their results returned by callback (aka webhook).  We **strongly encourage** you to use this approach for all documents.

**Note:** *Thumbprint scores aren't produced for image documents.  Under the Thumbprint product, OCR is not performed and image documents will return with a 'requires OCR' message.*

#### 4a. Create the recipient

Either use a third-party service or create your own endpoint to receive the callback.  The body of the callback request will match the output you received from `/uploadpdfs` in #2 above.

#### 4b. Upload a document with callback

Repeat the same `/uploadpdfs` call from #2, but add one additional form-data field:

| Name | Type | Value |
|  --- | --- | --- |
| `webhook` | string | The URL to which the results should be sent.It should be in the format `https://www.mydomain.com/my-endpoint` |


You should receive a `202 ACCEPTED` response.

From a few seconds to a few minutes later (depending on the size and format of the file),
your callback endpoint should receive a request.  The request body should match this structure:


```
{ 
  statement_summmaries: [],
  appinfo: {}
}
```

## 5. Next Steps

1. Explore the [/uploadpdfs documentation](https://docs.moneythumb.com/pdf-insights/api-reference/other/uploadpdfs).
2. Try converting multiple files at once (include as many `pdf-filename` form-data fields as you like).
3. Add retry logic to your API calls (but please include a retry limit).