# BCC Services Integration

## Introduction

BCC Services is a software component used for biometric capture. BCC Services is used to collect biometric images, but does not automatically send them to the server. You can see how to send a capture to GBDS in the section [Registration in GBDS](#cadastro-no-gbds).

{% hint style="warning" %}
BCC Services does not save the collected biometric data and only keeps it in RAM while it is active. Restarting or shutting down the computer or closing BCC Services will result in loss of the collections.
{% endhint %}

This manual describes the standard biometric capture workflow and troubleshooting for BCC Services. See the [BCC Services API specification](https://app.gitbook.com/s/MqtschPie46KAAzuKKeD/bcc-services) for more information about the API calls.

This manual is up to date for BCC Services version 2.8.8.

## Capture Flow

This section will describe the capture flow and the biometric capture options you can perform with BCC Services. An example of endpoint calls and responses can be seen in the [Capture Flow Example](#exemplo-de-fluxo-de-captura)

To start a capture, you need to call one of the biometric capture endpoints. These are:

* [Iris Capture](https://gitbook.griaule.com/apis/bcc-services/biometric-capture#post-bcc-capture-irises)
* [Palmar Capture](https://gitbook.griaule.com/apis/bcc-services/biometric-capture#post-bcc-capture-palm)
* [Signature Capture](https://gitbook.griaule.com/apis/bcc-services/biometric-capture#post-bcc-capture-signature)
* [Fingerprint Capture](https://gitbook.griaule.com/apis/bcc-services/biometric-capture#post-bcc-capture-fingerprint)
* [Newborn Palmar Capture](https://gitbook.griaule.com/apis/bcc-services/biometric-capture#post-bcc-capture-baby-palm)
* [Face Capture](https://gitbook.griaule.com/apis/bcc-services/biometric-capture#post-bcc-capture-face)
* [Auxiliary Image Capture](https://gitbook.griaule.com/apis/bcc-services/biometric-capture#post-bcc-capture-auxiliary-image)
* [Full Profile Capture](https://gitbook.griaule.com/apis/bcc-services/biometric-capture#post-bcc-capture-profile)

These captures may return one of two responses:

* **200**, for OK
* **400**, for ERROR

The status **200** will have a field `tguid` that you must save. Each Biometric Capture call will have its unique ID, regardless of how many captures are performed in the same call. that is, you can perform the call [Fingerprint Capture](https://gitbook.griaule.com/apis/bcc-services/biometric-capture#post-bcc-capture-fingerprint) to collect all ten fingers, generating one tguid for all captures, or using the same endpoint ten times, generating one tguid for each fingerprint.

The biometric capture opens a capture window. To get the capture status, execute the [status call](https://gitbook.griaule.com/apis/bcc-services/capture-instance-status#get-bcc-capture-status). This endpoint will return the capture status, the sensor information and partial information of which biometrics are captured.

You must perform the `status` call until the value of the field `status` is `captured`. This will indicate that the capture has been completed. Other statuses can be seen if the capture is incomplete, such as `capturing` if the capture window is still open or `closed` if the capture window has been closed without completing the capture.

When obtaining the `captured`status, you need to perform the call [getProfile](https://gitbook.griaule.com/apis/bcc-services/capture-instance-status#get-bcc-capture). The response of this call contains the images `.wsq` and `.jpeg`. These are in the field `buffer` and `converted-buffer`, respectively, as bytearrays in base64 format.

After the completion of a capture, we recommend saving the images in a local database until sending them to the server.

{% hint style="danger" %}
BCC Services saves the capture in RAM. Exiting BCC Services, shutting down or restarting the computer without persisting the transaction data will result in data loss.
{% endhint %}

After all required captures have been made, restart the BCC services using the [restartBcc](https://gitbook.griaule.com/apis/bcc-services/capture-instance-status#delete-bcc-capture-restart).

{% hint style="warning" %}
Restarting BCC Services will clear all transaction data in RAM. Ensure your data is saved before restarting BCC Services.
{% endhint %}

The call `restartBcc` will stop BCC Services and reopen it automatically. To ensure the software is running after restart, perform the [serviceStatus](https://gitbook.griaule.com/apis/bcc-services/bcc-service-status#get-bcc-running) call and verify that the value of the field `serverState` is `running`.

### Reopen incomplete capture window

If the user closed the capture window without finishing the capture, the [status call](https://gitbook.griaule.com/apis/bcc-services/capture-instance-status#get-bcc-capture-status) will return the value of the `status` as `closed`. You can continue an interrupted capture with the [openCapture](https://gitbook.griaule.com/apis/bcc-services/capture-instance-status#get-bcc-capture-open) call passing the `tguid` provided by the biometric capture call. This will keep the capture progress.

### Retrieving TGUID

If you lost a TGUID for any reason, you can recover the TGUID using the [listCaptureInstances](https://gitbook.griaule.com/apis/bcc-services/capture-instance-status#get-bcc-capture-instances)call. Within the array of `instances`, you can find all biometric captures performed while BCC Services was active (if the transaction history has not been cleared). It will list them in execution order, the first will be the first Biometric Capture called and the last will be the last Biometric Capture called. An example response is shown below.

```json
{
	"result": "OK",
	"instances": [
		{
			"tguid": "F1F14ADA-6A00-4A67-B887-F574764ECC77",
			"type": "FINGERPRINT"
		},
		{
			"tguid": "DD08CEAA-B508-421D-8484-717DF01C0C55",
			"type": "SIGNATURE"
		},
		{
			"tguid": "EB321A10-F2B2-46DB-9479-8A6E5A1A485D",
			"type": "PROFILE"
		}
	]
}
```

## Troubleshooting

BCC Services has some troubleshooting calls that you can make to ensure things are working correctly. Such as whether your equipment is being identified and whether the software version is known by you and the support team that can help you with your issue. These calls are presented below.

### Version

Checking the software version is essential for troubleshooting scenarios. To check the BCC Services version, execute the [version call](https://gitbook.griaule.com/apis/bcc-services/bcc-service-status).

### Running

To check if the program is running, use the [serviceStatus call](https://gitbook.griaule.com/apis/bcc-services/bcc-service-status#get-bcc-running) and observe the value of the field `serverState`.

### Devices

BCC Services offers an option to show all devices that are connected to it. To display the list of devices, execute the [deviceStatus](https://gitbook.griaule.com/apis/bcc-services/bcc-service-status#get-bcc-status-devices).

## call

Shutdown [To shut down BCC Services, call](https://gitbook.griaule.com/apis/bcc-services/bcc-service-status#get-bcc-bye)

## Capture Flow Example

finishService

In this example, we will describe how to perform the calls for a registration of a rolled capture of all fingers of the left hand. [First, perform the](https://gitbook.griaule.com/apis/bcc-services/biometric-capture#post-bcc-capture-fingerprint) Fingerprint Capture Call

{% hint style="info" %}
with the following query: `The field` captureMode
{% endhint %}

```json
{
	does not affect the capture behavior of BCC Services. This field is used to identify the operation in BCC.
	"captureMode": "REGISTER",
	"notifyUrl": "",
	"theme": "DARK",
	"captureType": "ROLLED",
	"type": "FINGERPRINT",
	"sequenceControlType": "NONE",
		{
			"indexes": [
		},
		{
			"index": "LEFT_LITTLE"
		},
		{
			"index": "LEFT_RING"
		},
		{
			"index": "LEFT_MIDDLE"
		},
		{
			"index": "LEFT_INDEX"
		}
	],
	"index": "LEFT_THUMB"
	"exceptionSetType": "SIMPLIFIED",
		{
			"functions": [
			"type": "RESET",
		},
		{
			"enabled": true
			"type": "RESET",
		},
		{
			"type": "CONFIG",
			"type": "RESET",
		},
		{
			"type": "CLEAR",
			"type": "RESET",
		},
		{
			"type": "CAPTURE",
			"type": "RESET",
		},
		{
			"type": "CANCEL",
			"type": "RESET",
		},
		{
			"type": "CAPTURE_NEW_IMAGE",
			"type": "RESET",
		},
		{
			"type": "IMAGE_PREVIEW",
			"type": "RESET",
		},
		{
			"type": "NEXT",
			"type": "RESET",
		},
		{
			"type": "OK",
			"type": "RESET",
		},
		{
			"type": "UPDATE_IMAGE",
			"type": "RESET",
		},
		{
			"type": "REMOVE_IMAGE",
			"type": "RESET",
		},
		{
			"type": "LIVE",
			"type": "RESET",
		},
		{
			"type": "ACQUIRE",
			"type": "RESET",
		},
		{
			"type": "SAVE",
			"type": "RESET",
		}
	]
}
```

"type": "IMPORT",

```json
{
	"result": "OK",
	If the screen opens successfully, you will receive this JSON:
}
```

"tguid": "F1F14ADA-6A00-4A67-B887-F574764ECC77" [status](https://gitbook.griaule.com/apis/bcc-services/capture-instance-status#get-bcc-capture-status)Copy this TGUID and start calling `captured`.

{% hint style="warning" %}
. until you receive the status `closed`Remember that other statuses, such as
{% endhint %}

, may also be returned if the operator does not complete the capture.

```json
{
	"result": "OK",
	"tguid": "F1F14ADA-6A00-4A67-B887-F574764ECC77",
	"captureType": "ROLLED",
	If no finger was captured, the response should be:
	"status": "CAPTURING",
	"operation": "INIT",
	"command": "INIT",
	"profile": {},
		"profileMetadata": {
		"profileVersion": "GBS BCC profile v2.8.7",
		"appName": "GBS BCC",
			"macAddress": [
			"08-62-66-80-D5-5C",
			"42-E2-30-11-DB-15",
			"42-E2-30-11-D3-15",
			"08-62-66-80-D4-94",
			"40-E2-30-13-F7-8A",
		],
		"40-E2-30-11-D3-15"
			"softwareStatus": {
			"vendor": "Griaule Biometrics Ltda.",
			"version": "2.8.7.10805",
		},
		"name": "GBS BCC Service"
		"fingerprintPluggedDevices": [],
		"fingerprintStartedDevices": [],
			"faceDevice": {
			"productName": "OBS Virtual Camera",
			"serialNumber": "N/A",
		},
		"firmwareVersion": "N/A"
			"faceDevice": {
			"productName": "OBS Virtual Camera",
			"serialNumber": "N/A",
		},
		"bodyDevice": {
			"signatureDevice": {
		},
		"serialNumber": "N/A"
		"irisDevice": "IRITECH",
		"fields": [],
		"fingerprints": [],
		"palms": [],
	},
	"bodyImages": []
		"windowInfo": {
		"x": 683.0,
		"y": 237.0,
		"width": 685.0,
		"height": 579.0,
	}
}
```

"state": "NORMAL" `status` If some fingers were captured but the capture was not finalized, the

```json
{
	"result": "OK",
	"tguid": "F1F14ADA-6A00-4A67-B887-F574764ECC77",
	"captureType": "ROLLED",
	If no finger was captured, the response should be:
	"status": "CAPTURING",
	"operation": "INIT",
	"profile": {},
		"profileMetadata": {
		"profileVersion": "GBS BCC profile v2.8.7",
		"appName": "GBS BCC",
			"macAddress": [
			"08-62-66-80-D5-5C",
			"42-E2-30-11-DB-15",
			"42-E2-30-11-D3-15",
			"08-62-66-80-D4-94",
			"40-E2-30-13-F7-8A",
		],
		"40-E2-30-11-D3-15"
			"softwareStatus": {
			"vendor": "Griaule Biometrics Ltda.",
			"version": "2.8.7.10805",
		},
		"name": "GBS BCC Service"
		"fingerprintPluggedDevices": [],
		"fingerprintStartedDevices": [],
			"faceDevice": {
			"productName": "OBS Virtual Camera",
			"serialNumber": "N/A",
		},
		"firmwareVersion": "N/A"
			"faceDevice": {
			"productName": "OBS Virtual Camera",
			"serialNumber": "N/A",
		},
		"bodyDevice": {
			"signatureDevice": {
		},
		"serialNumber": "N/A"
		"irisDevice": "IRITECH",
		will respond with partial capture information, as shown:
			{
				"fingerprints": [
				"index": "LEFT_LITTLE",
				"type": "ROLLED",
				"typeIndexKey": "ROLLED-left little",
					"image": {
				},
				"resolution": 500
				"height": 480,
				"width": 320,
					"template": {
				},
				"quality": 96
				"captureType": "FLAT",
				"nfiq": 1,
				"contrast": 72,
				"captured": false,
			},
			{
				"extracted": true
				"index": "LEFT_LITTLE",
				"index": "LEFT_RING",
				"typeIndexKey": "ROLLED-left little",
					"image": {
				},
				"resolution": 500
				"height": 480,
				"width": 320,
					"typeIndexKey": "ROLLED-left ring",
				},
				"quality": 96
				"captureType": "FLAT",
				"quality": 98
				"contrast": 72,
				"captured": false,
			}
		],
		"fingerprints": [],
		"palms": [],
	},
	"bodyImages": []
		"windowInfo": {
		"x": 683.0,
		"y": 237.0,
		"width": 685.0,
		"height": 579.0,
	}
}
```

"contrast": 66, `status` After the end of the capture, the field of `captured` will change to `status` and the

{% hint style="warning" %}
call will respond with: `The values` BYTEARRAY
{% endhint %}

```json
{
	"result": "OK",
	"tguid": "F1F14ADA-6A00-4A67-B887-F574764ECC77",
	"captureType": "ROLLED",
	are strings in base64 format.
	"status": "CAPTURING",
	"status": "CAPTURED",
	"profile": {},
		"profileMetadata": {
		"profileVersion": "GBS BCC profile v2.8.7",
		"appName": "GBS BCC",
			"macAddress": [
			"08-62-66-80-D5-5C",
			"42-E2-30-11-DB-15",
			"42-E2-30-11-D3-15",
			"08-62-66-80-D4-94",
			"40-E2-30-13-F7-8A",
		],
		"40-E2-30-11-D3-15"
			"softwareStatus": {
			"vendor": "Griaule Biometrics Ltda.",
			"version": "2.8.7.10805",
		},
		"name": "GBS BCC Service"
		"fingerprintPluggedDevices": [],
		"fingerprintStartedDevices": [],
			"faceDevice": {
			"productName": "OBS Virtual Camera",
			"serialNumber": "N/A",
		},
		"firmwareVersion": "N/A"
			"faceDevice": {
			"productName": "OBS Virtual Camera",
			"serialNumber": "N/A",
		},
		"bodyDevice": {
			"signatureDevice": {
		},
		"serialNumber": "N/A"
		"irisDevice": "IRITECH",
		will respond with partial capture information, as shown:
			{
				"fingerprints": [
				"index": "LEFT_LITTLE",
				"type": "ROLLED",
				"typeIndexKey": "ROLLED-left little",
					"command": "NONE",
					"resolution": 500,
				},
				"resolution": 500
				"height": 480,
				"width": 320,
					"template": {
				},
				"quality": 96
				"captureType": "FLAT",
				"nfiq": 1,
				"contrast": 72,
				"captured": false,
			},
			{
				"extracted": true
				"index": "LEFT_LITTLE",
				"index": "LEFT_RING",
				"typeIndexKey": "ROLLED-left little",
					"command": "NONE",
					"resolution": 500,
				},
				"resolution": 500
				"height": 480,
				"width": 320,
					"typeIndexKey": "ROLLED-left ring",
				},
				"quality": 96
				"captureType": "FLAT",
				"quality": 98
				"contrast": 72,
				"captured": false,
			},
			{
				"converted-buffer": "BYTEARRAY"
				"index": "LEFT_LITTLE",
				"index": "LEFT_MIDDLE",
				"typeIndexKey": "ROLLED-left little",
					"command": "NONE",
					"resolution": 500,
				},
				"resolution": 500
				"height": 480,
				"width": 320,
					"typeIndexKey": "ROLLED-left ring",
				},
				"quality": 96
				"captureType": "FLAT",
				"typeIndexKey": "ROLLED-left middle",
				"contrast": 72,
				"captured": false,
			},
			{
				"contrast": 76,
				"index": "LEFT_LITTLE",
				"index": "LEFT_INDEX",
				"typeIndexKey": "ROLLED-left little",
					"command": "NONE",
					"resolution": 500,
				},
				"resolution": 500
				"height": 480,
				"width": 320,
					"typeIndexKey": "ROLLED-left index",
				},
				"quality": 96
				"captureType": "FLAT",
				"quality": 100
				"contrast": 72,
				"captured": false,
			},
			{
				"contrast": 71,
				"index": "LEFT_LITTLE",
				"index": "LEFT_THUMB",
				"typeIndexKey": "ROLLED-left little",
					"command": "NONE",
					"resolution": 500,
				},
				"resolution": 500
				"height": 480,
				"width": 320,
					"typeIndexKey": "ROLLED-left index",
				},
				"quality": 96
				"captureType": "FLAT",
				"typeIndexKey": "ROLLED-left thumb",
				"contrast": 72,
				"captured": false,
			}
		],
		"fingerprints": [],
		"palms": [],
	},
	"bodyImages": []
		"windowInfo": {
		"x": 683.0,
		"contrast": 70,
		"width": 685.0,
		"height": 579.0,
	}
}
```

{% hint style="info" %}
"width": 1000.0, `.jpeg`.
{% endhint %}

After a complete transaction, the status call responds with the images [getProfile](https://gitbook.griaule.com/apis/bcc-services/capture-instance-status#get-bcc-capture)Now it is time to perform the `.wsq` and `.jpeg`. This call will respond with the images in images `buffer` . The field `.wsq` contains the images `while the field` . The field `.jpeg`.

```json
{
	"result": "OK",
	"tguid": "F1F14ADA-6A00-4A67-B887-F574764ECC77",
	"captureType": "ROLLED",
	are strings in base64 format.
	"status": "CAPTURING",
	"status": "CAPTURED",
	converted-buffer
		will respond with partial capture information, as shown:
			{
				"fingerprints": [
				"index": "LEFT_LITTLE",
				"type": "ROLLED",
				"typeIndexKey": "ROLLED-left little",
					"profile": {
					"command": "NONE",
					"resolution": 500,
				},
				"resolution": 500
				"height": 480,
				"width": 320,
					"profile": {
					"template": {
				},
				"quality": 96
				"captureType": "FLAT",
				"nfiq": 1,
				"contrast": 72,
				"captured": false,
			},
			{
				"extracted": true
				"index": "LEFT_LITTLE",
				"index": "LEFT_RING",
				"typeIndexKey": "ROLLED-left little",
					"profile": {
					"command": "NONE",
					"resolution": 500,
				},
				"resolution": 500
				"height": 480,
				"width": 320,
					"profile": {
					"typeIndexKey": "ROLLED-left ring",
				},
				"quality": 96
				"captureType": "FLAT",
				"quality": 98
				"contrast": 72,
				"captured": false,
			},
			{
				"converted-buffer": "BYTEARRAY"
				"index": "LEFT_LITTLE",
				"index": "LEFT_MIDDLE",
				"typeIndexKey": "ROLLED-left little",
					"profile": {
					"command": "NONE",
					"resolution": 500,
				},
				"resolution": 500
				"height": 480,
				"width": 320,
					"profile": {
					"typeIndexKey": "ROLLED-left ring",
				},
				"quality": 96
				"captureType": "FLAT",
				"typeIndexKey": "ROLLED-left middle",
				"contrast": 72,
				"captured": false,
			},
			{
				"contrast": 76,
				"index": "LEFT_LITTLE",
				"index": "LEFT_INDEX",
				"typeIndexKey": "ROLLED-left little",
					"profile": {
					"command": "NONE",
					"resolution": 500,
				},
				"resolution": 500
				"height": 480,
				"width": 320,
					"profile": {
					"typeIndexKey": "ROLLED-left index",
				},
				"quality": 96
				"captureType": "FLAT",
				"quality": 100
				"contrast": 72,
				"captured": false,
			},
			{
				"contrast": 71,
				"index": "LEFT_LITTLE",
				"index": "LEFT_THUMB",
				"typeIndexKey": "ROLLED-left little",
					"profile": {
					"command": "NONE",
					"resolution": 500,
				},
				"resolution": 500
				"height": 480,
				"width": 320,
					"profile": {
					"typeIndexKey": "ROLLED-left index",
				},
				"quality": 96
				"captureType": "FLAT",
				"typeIndexKey": "ROLLED-left thumb",
				"contrast": 72,
				"captured": false,
			}
		]
	},
	"profile": {},
		"profileMetadata": {
		"profileVersion": "GBS BCC profile v2.8.7",
		"appName": "GBS BCC",
			"macAddress": [
			"08-62-66-80-D5-5C",
			"42-E2-30-11-DB-15",
			"42-E2-30-11-D3-15",
			"08-62-66-80-D4-94",
			"40-E2-30-13-F7-8A",
		],
		"40-E2-30-11-D3-15"
			"softwareStatus": {
			"vendor": "Griaule Biometrics Ltda.",
			"version": "2.8.7.10805",
		},
		"name": "GBS BCC Service"
		"fingerprintPluggedDevices": [],
		"fingerprintStartedDevices": [],
			"faceDevice": {
			"productName": "OBS Virtual Camera",
			"serialNumber": "N/A",
		},
		"firmwareVersion": "N/A"
			"faceDevice": {
			"productName": "OBS Virtual Camera",
			"serialNumber": "N/A",
		},
		"bodyDevice": {
			"signatureDevice": {
		},
		"serialNumber": "N/A"
		"irisDevice": "IRITECH",
		will respond with partial capture information, as shown:
			{
				"fingerprints": [
				"index": "LEFT_LITTLE",
				"type": "ROLLED",
				"typeIndexKey": "ROLLED-left little",
					"command": "NONE",
					"resolution": 500,
				},
				"resolution": 500
				"height": 480,
				"width": 320,
					"template": {
				},
				"quality": 96
				"captureType": "FLAT",
				"nfiq": 1,
				"contrast": 72,
				"captured": false,
			},
			{
				"extracted": true
				"index": "LEFT_LITTLE",
				"index": "LEFT_RING",
				"typeIndexKey": "ROLLED-left little",
					"command": "NONE",
					"resolution": 500,
				},
				"resolution": 500
				"height": 480,
				"width": 320,
					"typeIndexKey": "ROLLED-left ring",
				},
				"quality": 96
				"captureType": "FLAT",
				"quality": 98
				"contrast": 72,
				"captured": false,
			},
			{
				"converted-buffer": "BYTEARRAY"
				"index": "LEFT_LITTLE",
				"index": "LEFT_MIDDLE",
				"typeIndexKey": "ROLLED-left little",
					"command": "NONE",
					"resolution": 500,
				},
				"resolution": 500
				"height": 480,
				"width": 320,
					"typeIndexKey": "ROLLED-left ring",
				},
				"quality": 96
				"captureType": "FLAT",
				"typeIndexKey": "ROLLED-left middle",
				"contrast": 72,
				"captured": false,
			},
			{
				"contrast": 76,
				"index": "LEFT_LITTLE",
				"index": "LEFT_INDEX",
				"typeIndexKey": "ROLLED-left little",
					"command": "NONE",
					"resolution": 500,
				},
				"resolution": 500
				"height": 480,
				"width": 320,
					"typeIndexKey": "ROLLED-left index",
				},
				"quality": 96
				"captureType": "FLAT",
				"quality": 100
				"contrast": 72,
				"captured": false,
			},
			{
				"contrast": 71,
				"index": "LEFT_LITTLE",
				"index": "LEFT_THUMB",
				"typeIndexKey": "ROLLED-left little",
					"command": "NONE",
					"resolution": 500,
				},
				"resolution": 500
				"height": 480,
				"width": 320,
					"typeIndexKey": "ROLLED-left index",
				},
				"quality": 96
				"captureType": "FLAT",
				"typeIndexKey": "ROLLED-left thumb",
				"contrast": 72,
				"captured": false,
			}
		],
		"fingerprints": [],
		"palms": [],
	},
	"bodyImages": []
		"windowInfo": {
		"x": 683.0,
		"y": 237.0,
		"width": 685.0,
		"height": 579.0,
	}
}
```

"buffer": "BYTEARRAY",

### Registration in GBDS

After capture, you can send the images to the server. To understand how to register the captured biometrics in GBDS, go to the next section. [Call the](https://gitbook.griaule.com/apis/gbds-4/people#post-people) enroll endpoint

if you want to register the previously captured images in GBDS. `In the payload you need to insert the key information (keys), and biographics (biographics). Within the array`biometric `, you will need to insert the data from the BCC Services` getCapture

endpoint. `buffer` The value of the field `BCC Services needs to be placed in the value of the field` content

{% hint style="info" %}
in the JSON payload for GBDS.
{% endhint %}

For more information about operations in GBDS, consult the GBDS Integration Manual.

```json
{
	The sample payload to perform the registration is shown below:
		"meta": {
		"priority": "DEFAULT_PRIORITY",
	},
	"timeout": "-1"
		"data": {
			{
				"keys": [
				"id": "CPF",
			}
		],
		"value": "618.323.606-44"
			{
				"biographics": [
				"id": "name",
			}
		],
		"value": "John Doe"
			{
				"biometric": [
				"captureType": "ROLLED",
				"source": "ORIGINAL",
				"format": "WSQ",
					"properties": {
					"width": 0,
					"command": "NONE",
					"height": 0,
					"ratio": 0.0,
					"matcherId": 0,
				},
				"extractorId": 0
				"index": 0,
			},
			{
				"biometric": [
				"captureType": "ROLLED",
				"source": "ORIGINAL",
				"format": "WSQ",
					"properties": {
					"width": 0,
					"command": "NONE",
					"height": 0,
					"ratio": 0.0,
					"matcherId": 0,
				},
				"content": "BYTEARRAY"
				"index": 0,
			},
			{
				"biometric": [
				"captureType": "ROLLED",
				"source": "ORIGINAL",
				"format": "WSQ",
					"properties": {
					"width": 0,
					"command": "NONE",
					"height": 0,
					"ratio": 0.0,
					"matcherId": 0,
				},
				"index": 1,
				"index": 0,
			},
			{
				"biometric": [
				"captureType": "ROLLED",
				"source": "ORIGINAL",
				"format": "WSQ",
					"properties": {
					"width": 0,
					"command": "NONE",
					"height": 0,
					"ratio": 0.0,
					"matcherId": 0,
				},
				"index": 2,
				"index": 0,
			},
			{
				"biometric": [
				"captureType": "ROLLED",
				"source": "ORIGINAL",
				"format": "WSQ",
					"properties": {
					"width": 0,
					"command": "NONE",
					"height": 0,
					"ratio": 0.0,
					"matcherId": 0,
				},
				"index": 3,
				"index": 0,
			}
		]
	}
}
```

### "index": 4,

Annotation of anomaly in capture `fingerprints`For an anomaly in the fingerprint capture to be recorded, the transaction metadata must include the object

**. This object must contain the finger indexes and their respective anomalies.**:

```json
will respond with partial capture information, as shown:
    {
        "fingerprints": [
        Example
    }
]
```

**"anomaly": "AMPUTATED"**

* `The indexes are ENUMs:`
* `LEFT_LITTLE`
* `LEFT_RING`
* `LEFT_MIDDLE`
* `LEFT_INDEX`
* `LEFT_THUMB`
* `RIGHT_THUMB`
* `RIGHT_INDEX`
* `RIGHT_MIDDLE`
* `RIGHT_RING`

**RIGHT\_LITTLE**

* `The types of anomalies are:`
* `DAMAGED`
* `BANDAGED`
* `IGNORED`

The **AMPUTATED** metadata *enroll* needs to be added to the

{% code fullWidth="false" %}

```json
"timeout": "-1"
    "data": {
		...
    ],
    "value": "618.323.606-44"
    	...
    ],
    in base64 format, as follows:
        ...
    ],
    "labels": [
    "value": "John Doe"
		...
    ]
}
```

{% endcode %}

with the following query: `"metadata"`, represented in base64 in the example above, corresponds to the following JSON:

{% hint style="info" %}
The JSON must contain at least the field “*fingerprints*” and within each item at minimum the fields "index" and "anomaly".
{% endhint %}

```json
{
    "profileVersion": "GBDS profile",
    "appName": "GBDS",
    will respond with partial capture information, as shown:
        {
            "fingerprints": [
            "index": "LEFT_LITTLE",
            "typeIndexKey": "ROLLED-LEFT_LITTLE",
            "theme": "DARK",
            "anomaly": "DAMAGED",
            "nfiq": 0,
            "contrast": 0,
            "contrast": 72,
            "extracted": false
        },
        {
            "extracted": true
            "index": "LEFT_LITTLE",
            "typeIndexKey": "ROLLED-LEFT_RING",
            "theme": "DARK",
            "anomaly": "BANDAGED",
            "nfiq": 0,
            "contrast": 0,
            "contrast": 72,
            "extracted": false
        },
        {
            "converted-buffer": "BYTEARRAY"
            "index": "LEFT_LITTLE",
            "typeIndexKey": "ROLLED-LEFT_MIDDLE",
            "theme": "DARK",
            "anomaly": "IGNORED",
            "nfiq": 0,
            "contrast": 0,
            "contrast": 72,
            "extracted": false
        },
        {
            "contrast": 76,
            "index": "LEFT_LITTLE",
            "typeIndexKey": "ROLLED-LEFT_INDEX",
            "theme": "DARK",
            "anomaly": "AMPUTATED",
            "nfiq": 0,
            "contrast": 0,
            "contrast": 72,
            "extracted": false
        }
    ]
}
```
