# People

## getPerson

> This method returns the information of a person, given its PGUID.

```json
{"openapi":"3.0.1","info":{"title":"GBDS API","version":"4.7.0"},"servers":[{"url":"http://<ip>:8085/gbds/v2"}],"paths":{"/people/{pguid}":{"get":{"description":"This method returns the information of a person, given its PGUID.","tags":["people"],"operationId":"getPerson","summary":"getPerson","parameters":[{"name":"pguid","description":"Global unique ID of the person.","in":"path","required":true,"schema":{"type":"string"}},{"name":"personFields","description":"List containing the names of the fields of the Person entity.","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["BIOMETRIC","AUXILIARIES","KEYS","BIOGRAPHICS","LABELS","METADATA","BASIC_FIELDS","NO_FIELDS","ALL_FIELDS"]}}},{"name":"biometricFields","description":"List containing the names of the fields of the Biometric entity.","in":"query","required":false,"schema":{"uniqueItems":true,"type":"array","items":{"type":"string","enum":["INDEX","ALL_FIELDS"]}}},{"name":"biographicBase","description":"Determines if the API will try to get biographics from the Biobase Server or not.","in":"query","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPeopleResponse"}}}},"400":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"404":{"description":"Person does not exist","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessingError"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalError"}}}}}}}},"components":{"schemas":{"GetPeopleResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Person"}}},"Person":{"type":"object","properties":{"pguid":{"description":"Global unique ID of the Person. This attribute is assigned by the AFIS once the person is successfully enrolled","type":"string"},"lastEnrollTguid":{"description":"Global unique ID of the latest transaction on this Person.","type":"string"},"timestamp":{"description":"Timestamp of the latest transaction on this Person.","type":"integer","format":"int64"},"keys":{"type":"array","items":{"$ref":"#/components/schemas/Key"}},"biographics":{"type":"array","items":{"$ref":"#/components/schemas/Biographic"}},"biometric":{"type":"array","items":{"$ref":"#/components/schemas/Biometric"}},"auxiliaries":{"type":"array","items":{"$ref":"#/components/schemas/Biometric"}},"metadata":{"description":"Arbitrary data associated with the person.","type":"array","items":{"type":"string"}},"labels":{"description":"Arbitrary labels associated with a person, which can be used as filters for database queries.","uniqueItems":true,"type":"array","items":{"type":"string"}},"history":{"$ref":"#/components/schemas/History"},"biographicBaseStatus":{"$ref":"#/components/schemas/BiographicBaseStatus"}}},"Key":{"type":"object","properties":{"id":{"description":"Name of entity identifier.","type":"string"},"value":{"description":"Value of entity identifier.","type":"string"}}},"Biographic":{"type":"object","properties":{"id":{"description":"ID of the biographic data being stored.\n\nBiobase Server biographics have their IDs prepended with `bs-`. For example, `bs-name` and `bs-surname`.\n","type":"string"},"value":{"description":"Value of the biographic data.","type":"string"}}},"Biometric":{"type":"object","oneOf":[{"$ref":"#/components/schemas/CONSOLIDATED_TEMPLATE"},{"$ref":"#/components/schemas/TEMPLATE"},{"$ref":"#/components/schemas/ORIGINAL"}],"discriminator":{"propertyName":"source"}},"CONSOLIDATED_TEMPLATE":{"type":"object","properties":{"source":{"description":"How the biometric data was obtained.","type":"string","enum":["CONSOLIDATED_TEMPLATE"]},"type":{"description":"Type of the biometric data.","type":"string","enum":["FINGERPRINT","PALMPRINT","FOOTPRINT","FACE","IRIS","SIGNATURE","SEQUENCE_CONTROL","NEWBORN_PALMPRINT","OTHER"]},"format":{"description":"Format of the biometric data.","type":"string","enum":["PRIVATE","ISO","ANSI","UNKNOWN","EBTS_TYPE9"]},"properties":{"$ref":"#/components/schemas/BiometricProperties"},"index":{"description":"Identifies which biometric, of the specified type, is being sent.","type":"integer","format":"int32"},"content":{"description":"Base64 encoded biometric data.","type":"string"},"quality":{"description":"Given the quality of the extracted biometric template. The quality is unbounded and starts at 0.","type":"integer","format":"int32"}}},"BiometricProperties":{"type":"object","properties":{"width":{"description":"Width, in pixels, of the image. If 0, GBDS will try to extract this information from the image header.","type":"integer","format":"int32"},"height":{"description":"Height, in pixels, of the image. If 0, GBDS will try to extract this information from the image header.","type":"integer","format":"int32"},"resolution":{"description":"Image or template resolution.","type":"integer","format":"int32"},"ratio":{"description":"Proportion of the image.","type":"number","format":"double"},"matcherId":{"description":"ID of the Biometric Matcher to be used in verification and identification operations.","type":"integer","format":"int32"},"extractorId":{"description":"ID of the extractor to be used on the image.","type":"integer","format":"int32"}}},"TEMPLATE":{"type":"object","properties":{"source":{"description":"How the biometric data was obtained.","type":"string","enum":["TEMPLATE"]},"type":{"description":"Type of the biometric data.","type":"string","enum":["FINGERPRINT","PALMPRINT","FOOTPRINT","FACE","IRIS","SIGNATURE","SEQUENCE_CONTROL","NEWBORN_PALMPRINT","OTHER"]},"format":{"description":"Format of the biometric data.","type":"string","enum":["PRIVATE","ISO","ANSI","UNKNOWN","EBTS_TYPE9"]},"properties":{"$ref":"#/components/schemas/BiometricProperties"},"index":{"description":"Identifies which biometric, of the specified type, is being sent.","type":"integer","format":"int32"},"content":{"description":"Base64 encoded biometric data.","type":"string"},"quality":{"description":"Given the quality of the extracted biometric template. The quality is unbounded and starts at 0.","type":"integer","format":"int32"}}},"ORIGINAL":{"type":"object","properties":{"source":{"description":"How the biometric data was obtained.","type":"string","enum":["ORIGINAL"]},"type":{"description":"Type of the biometric data.","type":"string","enum":["FINGERPRINT","PALMPRINT","FOOTPRINT","FACE","IRIS","VOICE","SIGNATURE","SEQUENCE_CONTROL","NEWBORN_PALMPRINT","OTHER"]},"format":{"description":"Format of the biometric data.","type":"string","enum":["RAW","WSQ","JPEG","JPEG2000","PNG","TIFF","GIF","BMP","PCM","WAV","PRIVATE","ISO","ANSI","UNKNOWN","EBTS_TYPE9"]},"properties":{"$ref":"#/components/schemas/BiometricProperties"},"index":{"description":"Identifies which biometric, of the specified type, is being sent.","type":"integer","format":"int32"},"content":{"description":"Base64 encoded biometric data.","type":"string"},"quality":{"description":"Given the quality of the extracted biometric template. The quality is unbounded and starts at 0.","type":"integer","format":"int32"}}},"History":{"type":"object","properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/HistoryEvent"}}}},"HistoryEvent":{"required":["type"],"type":"object","properties":{"tguid":{"description":"Global unique ID of the transaction.","type":"string"},"timestamp":{"description":"Timestamp of event/transaction.","type":"integer","format":"int64"},"type":{"description":"Type of event/transaction.","type":"string"},"targetTguid":{"description":"Global unique ID of the transaction that was disabled.","type":"string"}},"discriminator":{"propertyName":"type"}},"BiographicBaseStatus":{"description":"Status of the biographic base.\n- `UNAVAILABLE`: When all Biobase Servers are off.\n- `TIMEOUT`: When at least one Biobase Server is ON but the call timed out.\n- `UNAUTHORIZED`:\n  - If the **lookAllServers** conf is **ON**, it indicates that all running servers returned that the API authentication is unauthorized.\n  - If the **lookAllServers** conf is **OFF**, it indicates that the server that received the biographic request returned that the API authentication is unauthorized.\n- `INVALID_DATA`: The Biobase Server returned that the data request from the API is invalid. It is not supposed to happen if Biobase Server is implemented according to the Biographic Base API.\n- `NOT_FOUND`:\n  - If the **lookAllServers** conf is **ON**, it indicates that the person keys were not found on all Biobase Servers configured.\n  - If the **lookAllServers** conf is **OFF**, it indicates that person keys were not found on the server that received the biographic request.\n- `OK`: The Biobase Server returned biographics/face for the given person keys.\n","type":"string","enum":["UNAVAILABLE","TIMEOUT","UNAUTHORIZED","INVALID_DATA","NOT_FOUND","OK"]},"ValidationError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["VALIDATION_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["MISSING_PGUID","MISSING_PERSON","MISSING_BIOMETRIC","INVALID_PARAMETER_COMBINATION","MISSING_REQUIRED_QUERY_PARAMETER","MISSING_REQUIRED_ENTITY_ATTRIBUTE","UNKNOWN_ENTITY_ATTRIBUTE","QUERY_PARAMETER_OUT_OF_RANGE","PARAMETER_OUT_OF_RANGE","PGUID_IS_EMPTY","FORBIDDEN_ATTRIBUTE_SET","INVALID_TOKEN_GRANT_SPEC","INVALID_ENUM_VALUE","MALFORMED_JSON","INVALID_JSON_ATTRIBUTE_VALUE","INVALID_URL_ATTRIBUTE_VALUE","UNKNOWN_REQUEST_READ_ERROR","PAGE_NOT_FOUND","UNSUPPORTED_HTTP_METHOD"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}},"ProcessingError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["PROCESSING_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["ENTITY_DOES_NOT_EXIST","ENTITY_ALREADY_EXISTS","POOR_BIOMETRIC_QUALITY","DUPLICATED_BIOMETRIC","BIOMETRIC_OUT_OF_SEQUENCE","BIOMETRIC_ERROR","INSUFFICIENT_TEMPLATE_COUNT","UNEXTRACTABLE_BIOMETRIC","PERSON_DOES_NOT_EXIST","PERSON_NOT_ACTIVE","PERSON_DOES_NOT_HAVE_BIOMETRIC","PENDING_EXCEPTIONS","ENROLL_TRANSACTION_DOES_NOT_EXIST","ENROLL_PERSON_NOT_FOUND","INVALID_TRANSACTION_STATE","EXCEPTION_DOES_NOT_EXIST","TREAT_EXCEPTION_TRANSACTION_DOES_NOT_EXIST","USER_NOT_AUTHORIZED_TO_TREAT_EXCEPTION","UL_IS_ALREADY_SOLVED","INVALID_PARAMETER_COMBINATION","CAN_NOT_DISABLE_ONLY_ENROLL_TRANSACTION","PERSON_DOES_NOT_OWN_TRANSACTION","TRANSACTION_IS_ALREADY_DISABLED","CAN_NOT_DISABLE_TRANSACTION_OF_UNSUPPORTED_TYPE","INVALID_EBTS_TYPE9_CONTENT","EXTERNAL_ID_DOES_NOT_EXIST","EXCEPTION_IS_ALREADY_TREATED","INVALID_TREATMENT_FOR_EXCEPTION","ENROLL_IS_ALREADY_ASSIGNED","ENROLL_IS_ALREADY_UNASSIGNED","ENROLL_IS_NOT_PENDING","ENROLL_IS_NOT_ASSIGNED","ENROLL_HAS_DIFFERENT_ASSIGNED_USER","NO_PGUID_FOUND_FOR_KEY","NO_SEARCHABLE_BIOMETRIC"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}},"InternalError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["INTERNAL_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["DRIVER_OFFLINE","CREDENTIAL_SERVER_CONNECTION_ERROR","CLIENT_NOT_INITIALIZE","TRUSTED_ENROLL_WITH_PENDING_STATUS","SUBJECT_NOT_SET","UNKNOWN"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}}}}}
```

## update

> This method performs an update operation in GBDS.

```json
{"openapi":"3.0.1","info":{"title":"GBDS API","version":"4.7.0"},"servers":[{"url":"http://<ip>:8085/gbds/v2"}],"paths":{"/people/{pguid}":{"put":{"description":"This method performs an update operation in GBDS.","tags":["people"],"operationId":"update","summary":"update","parameters":[{"name":"pguid","description":"Global unique ID of the person.","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePeopleRequest"}}},"required":true},"responses":{"201":{"description":"Enrolled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrollResponse"}}}},"202":{"description":"Enqueued, processing, exception.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrollResponse"}}}},"400":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"422":{"description":"Pending or failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessingError"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalError"}}}}}}}},"components":{"schemas":{"UpdatePeopleRequest":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PersonRequest"},"meta":{"$ref":"#/components/schemas/UpdateBiometricValidation"}}},"PersonRequest":{"type":"object","properties":{"timestamp":{"description":"Timestamp of the latest transaction on this Person.","type":"integer","format":"int64"},"keys":{"type":"array","items":{"$ref":"#/components/schemas/Key"}},"biographics":{"type":"array","items":{"$ref":"#/components/schemas/Biographic"}},"biometric":{"type":"array","items":{"$ref":"#/components/schemas/Biometric"}},"auxiliaries":{"type":"array","items":{"$ref":"#/components/schemas/Biometric"}},"metadata":{"description":"Arbitrary data associated with the person.","type":"string"},"labels":{"description":"Arbitrary labels associated with a person, which can be used as filters for database queries.","uniqueItems":true,"type":"array","items":{"type":"string"}}}},"Key":{"type":"object","properties":{"id":{"description":"Name of entity identifier.","type":"string"},"value":{"description":"Value of entity identifier.","type":"string"}}},"Biographic":{"type":"object","properties":{"id":{"description":"ID of the biographic data being stored.\n\nBiobase Server biographics have their IDs prepended with `bs-`. For example, `bs-name` and `bs-surname`.\n","type":"string"},"value":{"description":"Value of the biographic data.","type":"string"}}},"Biometric":{"type":"object","oneOf":[{"$ref":"#/components/schemas/CONSOLIDATED_TEMPLATE"},{"$ref":"#/components/schemas/TEMPLATE"},{"$ref":"#/components/schemas/ORIGINAL"}],"discriminator":{"propertyName":"source"}},"CONSOLIDATED_TEMPLATE":{"type":"object","properties":{"source":{"description":"How the biometric data was obtained.","type":"string","enum":["CONSOLIDATED_TEMPLATE"]},"type":{"description":"Type of the biometric data.","type":"string","enum":["FINGERPRINT","PALMPRINT","FOOTPRINT","FACE","IRIS","SIGNATURE","SEQUENCE_CONTROL","NEWBORN_PALMPRINT","OTHER"]},"format":{"description":"Format of the biometric data.","type":"string","enum":["PRIVATE","ISO","ANSI","UNKNOWN","EBTS_TYPE9"]},"properties":{"$ref":"#/components/schemas/BiometricProperties"},"index":{"description":"Identifies which biometric, of the specified type, is being sent.","type":"integer","format":"int32"},"content":{"description":"Base64 encoded biometric data.","type":"string"},"quality":{"description":"Given the quality of the extracted biometric template. The quality is unbounded and starts at 0.","type":"integer","format":"int32"}}},"BiometricProperties":{"type":"object","properties":{"width":{"description":"Width, in pixels, of the image. If 0, GBDS will try to extract this information from the image header.","type":"integer","format":"int32"},"height":{"description":"Height, in pixels, of the image. If 0, GBDS will try to extract this information from the image header.","type":"integer","format":"int32"},"resolution":{"description":"Image or template resolution.","type":"integer","format":"int32"},"ratio":{"description":"Proportion of the image.","type":"number","format":"double"},"matcherId":{"description":"ID of the Biometric Matcher to be used in verification and identification operations.","type":"integer","format":"int32"},"extractorId":{"description":"ID of the extractor to be used on the image.","type":"integer","format":"int32"}}},"TEMPLATE":{"type":"object","properties":{"source":{"description":"How the biometric data was obtained.","type":"string","enum":["TEMPLATE"]},"type":{"description":"Type of the biometric data.","type":"string","enum":["FINGERPRINT","PALMPRINT","FOOTPRINT","FACE","IRIS","SIGNATURE","SEQUENCE_CONTROL","NEWBORN_PALMPRINT","OTHER"]},"format":{"description":"Format of the biometric data.","type":"string","enum":["PRIVATE","ISO","ANSI","UNKNOWN","EBTS_TYPE9"]},"properties":{"$ref":"#/components/schemas/BiometricProperties"},"index":{"description":"Identifies which biometric, of the specified type, is being sent.","type":"integer","format":"int32"},"content":{"description":"Base64 encoded biometric data.","type":"string"},"quality":{"description":"Given the quality of the extracted biometric template. The quality is unbounded and starts at 0.","type":"integer","format":"int32"}}},"ORIGINAL":{"type":"object","properties":{"source":{"description":"How the biometric data was obtained.","type":"string","enum":["ORIGINAL"]},"type":{"description":"Type of the biometric data.","type":"string","enum":["FINGERPRINT","PALMPRINT","FOOTPRINT","FACE","IRIS","VOICE","SIGNATURE","SEQUENCE_CONTROL","NEWBORN_PALMPRINT","OTHER"]},"format":{"description":"Format of the biometric data.","type":"string","enum":["RAW","WSQ","JPEG","JPEG2000","PNG","TIFF","GIF","BMP","PCM","WAV","PRIVATE","ISO","ANSI","UNKNOWN","EBTS_TYPE9"]},"properties":{"$ref":"#/components/schemas/BiometricProperties"},"index":{"description":"Identifies which biometric, of the specified type, is being sent.","type":"integer","format":"int32"},"content":{"description":"Base64 encoded biometric data.","type":"string"},"quality":{"description":"Given the quality of the extracted biometric template. The quality is unbounded and starts at 0.","type":"integer","format":"int32"}}},"UpdateBiometricValidation":{"type":"object","properties":{"timeout":{"description":"Time, in milliseconds, waiting for the completion of the operation. If this value is -1, then the method is fully synchronous. If the timeout value is 0, then the method is fully asynchronous. If>0, the call expires after this time (in milliseconds).","type":"integer","format":"int32"},"priority":{"description":"Priority of the update operation.","type":"string","enum":["GOD_PRIORITY","HIGHEST_PRIORITY","HIGHER_PRIORITY","HIGH_PRIORITY","DEFAULT_PRIORITY","LOW_PRIORITY","LOWER_PRIORITY","LOWEST_PRIORITY"]},"validationType":{"description":"Defines the type of biometric validation to be performed against the AFIS.","type":"string","enum":["SAME_FINGERS","ALL_FINGERS","CROSSED_WINDOW_TWEEZERS"]},"externalIDs":{"description":"List of externalIDs related to this transaction.","type":"array","items":{"$ref":"#/components/schemas/ExternalID"}},"labels":{"type":"string","enum":["ACCUMULATE","REPLACE"]},"liveness":{"description":"Flag to request liveness verification on query face image. If activated, a bonafide score will be returned on get transaction.","type":"boolean"},"biographicBase":{"$ref":"#/components/schemas/BiographicBaseFlags"}}},"ExternalID":{"type":"object","properties":{"name":{"description":"Name of the ID.","type":"string"},"key":{"description":"Value of the ID.","type":"string"}}},"BiographicBaseFlags":{"description":"Biographic database interaction configuration flags.","type":"object","properties":{"autoUpdate":{"description":"Update biographic base.\n\nIf absent, uses value of API config parameter `gbds.biographicBase.autoUpdate`.\n","type":"boolean"},"sendPguidAsKey":{"description":"Send PGUID as key on biographic base update.\n\nIf absent, uses value of API config parameter `gbds.biographicBase.sendPguidAsKey`.\n","type":"boolean"},"sendTguidAsKey":{"description":"Send TGUID as key on biographic base update.\n\nIf absent, uses value of API config parameter `gbds.biographicBase.sendTguidAsKey`.\n","type":"boolean"}}},"EnrollResponse":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"description":"Status of the enroll transaction.","type":"string","enum":["ENQUEUED","PROCESSING","ENROLLED","EXCEPTION","FAILED","PENDING","REFUSED"]},"tguid":{"description":"Global unique id of the transaction.","type":"string"},"biographicBaseStatus":{"$ref":"#/components/schemas/BiographicBaseStatus"}}}}},"BiographicBaseStatus":{"description":"Status of the biographic base.\n- `UNAVAILABLE`: When all Biobase Servers are off.\n- `TIMEOUT`: When at least one Biobase Server is ON but the call timed out.\n- `UNAUTHORIZED`:\n  - If the **lookAllServers** conf is **ON**, it indicates that all running servers returned that the API authentication is unauthorized.\n  - If the **lookAllServers** conf is **OFF**, it indicates that the server that received the biographic request returned that the API authentication is unauthorized.\n- `INVALID_DATA`: The Biobase Server returned that the data request from the API is invalid. It is not supposed to happen if Biobase Server is implemented according to the Biographic Base API.\n- `NOT_FOUND`:\n  - If the **lookAllServers** conf is **ON**, it indicates that the person keys were not found on all Biobase Servers configured.\n  - If the **lookAllServers** conf is **OFF**, it indicates that person keys were not found on the server that received the biographic request.\n- `OK`: The Biobase Server returned biographics/face for the given person keys.\n","type":"string","enum":["UNAVAILABLE","TIMEOUT","UNAUTHORIZED","INVALID_DATA","NOT_FOUND","OK"]},"ValidationError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["VALIDATION_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["MISSING_PGUID","MISSING_PERSON","MISSING_BIOMETRIC","INVALID_PARAMETER_COMBINATION","MISSING_REQUIRED_QUERY_PARAMETER","MISSING_REQUIRED_ENTITY_ATTRIBUTE","UNKNOWN_ENTITY_ATTRIBUTE","QUERY_PARAMETER_OUT_OF_RANGE","PARAMETER_OUT_OF_RANGE","PGUID_IS_EMPTY","FORBIDDEN_ATTRIBUTE_SET","INVALID_TOKEN_GRANT_SPEC","INVALID_ENUM_VALUE","MALFORMED_JSON","INVALID_JSON_ATTRIBUTE_VALUE","INVALID_URL_ATTRIBUTE_VALUE","UNKNOWN_REQUEST_READ_ERROR","PAGE_NOT_FOUND","UNSUPPORTED_HTTP_METHOD"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}},"ProcessingError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["PROCESSING_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["ENTITY_DOES_NOT_EXIST","ENTITY_ALREADY_EXISTS","POOR_BIOMETRIC_QUALITY","DUPLICATED_BIOMETRIC","BIOMETRIC_OUT_OF_SEQUENCE","BIOMETRIC_ERROR","INSUFFICIENT_TEMPLATE_COUNT","UNEXTRACTABLE_BIOMETRIC","PERSON_DOES_NOT_EXIST","PERSON_NOT_ACTIVE","PERSON_DOES_NOT_HAVE_BIOMETRIC","PENDING_EXCEPTIONS","ENROLL_TRANSACTION_DOES_NOT_EXIST","ENROLL_PERSON_NOT_FOUND","INVALID_TRANSACTION_STATE","EXCEPTION_DOES_NOT_EXIST","TREAT_EXCEPTION_TRANSACTION_DOES_NOT_EXIST","USER_NOT_AUTHORIZED_TO_TREAT_EXCEPTION","UL_IS_ALREADY_SOLVED","INVALID_PARAMETER_COMBINATION","CAN_NOT_DISABLE_ONLY_ENROLL_TRANSACTION","PERSON_DOES_NOT_OWN_TRANSACTION","TRANSACTION_IS_ALREADY_DISABLED","CAN_NOT_DISABLE_TRANSACTION_OF_UNSUPPORTED_TYPE","INVALID_EBTS_TYPE9_CONTENT","EXTERNAL_ID_DOES_NOT_EXIST","EXCEPTION_IS_ALREADY_TREATED","INVALID_TREATMENT_FOR_EXCEPTION","ENROLL_IS_ALREADY_ASSIGNED","ENROLL_IS_ALREADY_UNASSIGNED","ENROLL_IS_NOT_PENDING","ENROLL_IS_NOT_ASSIGNED","ENROLL_HAS_DIFFERENT_ASSIGNED_USER","NO_PGUID_FOUND_FOR_KEY","NO_SEARCHABLE_BIOMETRIC"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}},"InternalError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["INTERNAL_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["DRIVER_OFFLINE","CREDENTIAL_SERVER_CONNECTION_ERROR","CLIENT_NOT_INITIALIZE","TRUSTED_ENROLL_WITH_PENDING_STATUS","SUBJECT_NOT_SET","UNKNOWN"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}}}}}
```

## deletePerson

> This method deletes the information of a person, given its PGUID.

```json
{"openapi":"3.0.1","info":{"title":"GBDS API","version":"4.7.0"},"servers":[{"url":"http://<ip>:8085/gbds/v2"}],"paths":{"/people/{pguid}":{"delete":{"description":"This method deletes the information of a person, given its PGUID.","tags":["people"],"operationId":"deletePerson","summary":"deletePerson","parameters":[{"name":"pguid","description":"Global unique ID of the person.","in":"path","required":true,"schema":{"type":"string"}},{"name":"priority","description":"Priority of the operation. Default is `GOD_PRIORITY`.","in":"query","required":false,"schema":{"type":"string","enum":["GOD_PRIORITY","HIGHEST_PRIORITY","HIGHER_PRIORITY","HIGH_PRIORITY","DEFAULT_PRIORITY","LOW_PRIORITY","LOWER_PRIORITY","LOWEST_PRIORITY"]}},{"name":"timeout","description":"Timeout of the operation. Default is `0`.\n\nIf the timeout is `-1`, the operation will be executed synchronously.<br>\nIf the timeout is `0`, the operation will be executed asynchronously.<br>\nIf the timeout is `>0` (greater than 0), the operation will be executed synchronously after the timeout.\n","in":"query","required":false,"schema":{"type":"integer"}}],"responses":{"204":{"description":"Deleted","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Person does not exist","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessingError"}}}},"422":{"description":"Person not active, pending exceptions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessingError"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalError"}}}}}}}},"components":{"schemas":{"ProcessingError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["PROCESSING_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["ENTITY_DOES_NOT_EXIST","ENTITY_ALREADY_EXISTS","POOR_BIOMETRIC_QUALITY","DUPLICATED_BIOMETRIC","BIOMETRIC_OUT_OF_SEQUENCE","BIOMETRIC_ERROR","INSUFFICIENT_TEMPLATE_COUNT","UNEXTRACTABLE_BIOMETRIC","PERSON_DOES_NOT_EXIST","PERSON_NOT_ACTIVE","PERSON_DOES_NOT_HAVE_BIOMETRIC","PENDING_EXCEPTIONS","ENROLL_TRANSACTION_DOES_NOT_EXIST","ENROLL_PERSON_NOT_FOUND","INVALID_TRANSACTION_STATE","EXCEPTION_DOES_NOT_EXIST","TREAT_EXCEPTION_TRANSACTION_DOES_NOT_EXIST","USER_NOT_AUTHORIZED_TO_TREAT_EXCEPTION","UL_IS_ALREADY_SOLVED","INVALID_PARAMETER_COMBINATION","CAN_NOT_DISABLE_ONLY_ENROLL_TRANSACTION","PERSON_DOES_NOT_OWN_TRANSACTION","TRANSACTION_IS_ALREADY_DISABLED","CAN_NOT_DISABLE_TRANSACTION_OF_UNSUPPORTED_TYPE","INVALID_EBTS_TYPE9_CONTENT","EXTERNAL_ID_DOES_NOT_EXIST","EXCEPTION_IS_ALREADY_TREATED","INVALID_TREATMENT_FOR_EXCEPTION","ENROLL_IS_ALREADY_ASSIGNED","ENROLL_IS_ALREADY_UNASSIGNED","ENROLL_IS_NOT_PENDING","ENROLL_IS_NOT_ASSIGNED","ENROLL_HAS_DIFFERENT_ASSIGNED_USER","NO_PGUID_FOUND_FOR_KEY","NO_SEARCHABLE_BIOMETRIC"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}},"InternalError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["INTERNAL_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["DRIVER_OFFLINE","CREDENTIAL_SERVER_CONNECTION_ERROR","CLIENT_NOT_INITIALIZE","TRUSTED_ENROLL_WITH_PENDING_STATUS","SUBJECT_NOT_SET","UNKNOWN"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}}}}}
```

## enroll

> This method submits a new enrollment operation to GBDS.

```json
{"openapi":"3.0.1","info":{"title":"GBDS API","version":"4.7.0"},"servers":[{"url":"http://<ip>:8085/gbds/v2"}],"paths":{"/people":{"post":{"description":"This method submits a new enrollment operation to GBDS.","tags":["people"],"operationId":"enroll","summary":"enroll","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePeopleRequest"}}},"required":true},"responses":{"201":{"description":"Enrolled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrollResponse"}}}},"202":{"description":"Enqueued, processing, exception, refused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrollResponse"}}}},"400":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"422":{"description":"Pending or failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessingError"}}}},"500":{"description":"Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalError"}}}}}}}},"components":{"schemas":{"CreatePeopleRequest":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PersonRequest"},"meta":{"$ref":"#/components/schemas/BiometricValidation"}}},"PersonRequest":{"type":"object","properties":{"timestamp":{"description":"Timestamp of the latest transaction on this Person.","type":"integer","format":"int64"},"keys":{"type":"array","items":{"$ref":"#/components/schemas/Key"}},"biographics":{"type":"array","items":{"$ref":"#/components/schemas/Biographic"}},"biometric":{"type":"array","items":{"$ref":"#/components/schemas/Biometric"}},"auxiliaries":{"type":"array","items":{"$ref":"#/components/schemas/Biometric"}},"metadata":{"description":"Arbitrary data associated with the person.","type":"string"},"labels":{"description":"Arbitrary labels associated with a person, which can be used as filters for database queries.","uniqueItems":true,"type":"array","items":{"type":"string"}}}},"Key":{"type":"object","properties":{"id":{"description":"Name of entity identifier.","type":"string"},"value":{"description":"Value of entity identifier.","type":"string"}}},"Biographic":{"type":"object","properties":{"id":{"description":"ID of the biographic data being stored.\n\nBiobase Server biographics have their IDs prepended with `bs-`. For example, `bs-name` and `bs-surname`.\n","type":"string"},"value":{"description":"Value of the biographic data.","type":"string"}}},"Biometric":{"type":"object","oneOf":[{"$ref":"#/components/schemas/CONSOLIDATED_TEMPLATE"},{"$ref":"#/components/schemas/TEMPLATE"},{"$ref":"#/components/schemas/ORIGINAL"}],"discriminator":{"propertyName":"source"}},"CONSOLIDATED_TEMPLATE":{"type":"object","properties":{"source":{"description":"How the biometric data was obtained.","type":"string","enum":["CONSOLIDATED_TEMPLATE"]},"type":{"description":"Type of the biometric data.","type":"string","enum":["FINGERPRINT","PALMPRINT","FOOTPRINT","FACE","IRIS","SIGNATURE","SEQUENCE_CONTROL","NEWBORN_PALMPRINT","OTHER"]},"format":{"description":"Format of the biometric data.","type":"string","enum":["PRIVATE","ISO","ANSI","UNKNOWN","EBTS_TYPE9"]},"properties":{"$ref":"#/components/schemas/BiometricProperties"},"index":{"description":"Identifies which biometric, of the specified type, is being sent.","type":"integer","format":"int32"},"content":{"description":"Base64 encoded biometric data.","type":"string"},"quality":{"description":"Given the quality of the extracted biometric template. The quality is unbounded and starts at 0.","type":"integer","format":"int32"}}},"BiometricProperties":{"type":"object","properties":{"width":{"description":"Width, in pixels, of the image. If 0, GBDS will try to extract this information from the image header.","type":"integer","format":"int32"},"height":{"description":"Height, in pixels, of the image. If 0, GBDS will try to extract this information from the image header.","type":"integer","format":"int32"},"resolution":{"description":"Image or template resolution.","type":"integer","format":"int32"},"ratio":{"description":"Proportion of the image.","type":"number","format":"double"},"matcherId":{"description":"ID of the Biometric Matcher to be used in verification and identification operations.","type":"integer","format":"int32"},"extractorId":{"description":"ID of the extractor to be used on the image.","type":"integer","format":"int32"}}},"TEMPLATE":{"type":"object","properties":{"source":{"description":"How the biometric data was obtained.","type":"string","enum":["TEMPLATE"]},"type":{"description":"Type of the biometric data.","type":"string","enum":["FINGERPRINT","PALMPRINT","FOOTPRINT","FACE","IRIS","SIGNATURE","SEQUENCE_CONTROL","NEWBORN_PALMPRINT","OTHER"]},"format":{"description":"Format of the biometric data.","type":"string","enum":["PRIVATE","ISO","ANSI","UNKNOWN","EBTS_TYPE9"]},"properties":{"$ref":"#/components/schemas/BiometricProperties"},"index":{"description":"Identifies which biometric, of the specified type, is being sent.","type":"integer","format":"int32"},"content":{"description":"Base64 encoded biometric data.","type":"string"},"quality":{"description":"Given the quality of the extracted biometric template. The quality is unbounded and starts at 0.","type":"integer","format":"int32"}}},"ORIGINAL":{"type":"object","properties":{"source":{"description":"How the biometric data was obtained.","type":"string","enum":["ORIGINAL"]},"type":{"description":"Type of the biometric data.","type":"string","enum":["FINGERPRINT","PALMPRINT","FOOTPRINT","FACE","IRIS","VOICE","SIGNATURE","SEQUENCE_CONTROL","NEWBORN_PALMPRINT","OTHER"]},"format":{"description":"Format of the biometric data.","type":"string","enum":["RAW","WSQ","JPEG","JPEG2000","PNG","TIFF","GIF","BMP","PCM","WAV","PRIVATE","ISO","ANSI","UNKNOWN","EBTS_TYPE9"]},"properties":{"$ref":"#/components/schemas/BiometricProperties"},"index":{"description":"Identifies which biometric, of the specified type, is being sent.","type":"integer","format":"int32"},"content":{"description":"Base64 encoded biometric data.","type":"string"},"quality":{"description":"Given the quality of the extracted biometric template. The quality is unbounded and starts at 0.","type":"integer","format":"int32"}}},"BiometricValidation":{"type":"object","properties":{"timeout":{"description":"Time, in milliseconds, waiting for the completion of the operation. If this value is -1, then the method is fully synchronous. If the timeout value is 0, then the method is fully asynchronous. If>0, the call expires after this time (in milliseconds).","type":"integer","format":"int32"},"priority":{"description":"Priority of the enroll operation.","type":"string","enum":["GOD_PRIORITY","HIGHEST_PRIORITY","HIGHER_PRIORITY","HIGH_PRIORITY","DEFAULT_PRIORITY","LOW_PRIORITY","LOWER_PRIORITY","LOWEST_PRIORITY"]},"validationType":{"description":"Defines the type of biometric validation to be performed against the AFIS.","type":"string","enum":["SAME_FINGERS","ALL_FINGERS","CROSSED_WINDOW_TWEEZERS"]},"externalIDs":{"description":"List of externalIDs related to this transaction.","type":"array","items":{"$ref":"#/components/schemas/ExternalID"}},"labels":{"type":"string","enum":["ACCUMULATE","REPLACE"]},"liveness":{"description":"Flag to request liveness verification on query face image. If activated, a bonafide score will be returned on get transaction.","type":"boolean"},"biographicBase":{"$ref":"#/components/schemas/BiographicBaseFlags"}}},"ExternalID":{"type":"object","properties":{"name":{"description":"Name of the ID.","type":"string"},"key":{"description":"Value of the ID.","type":"string"}}},"BiographicBaseFlags":{"description":"Biographic database interaction configuration flags.","type":"object","properties":{"autoUpdate":{"description":"Update biographic base.\n\nIf absent, uses value of API config parameter `gbds.biographicBase.autoUpdate`.\n","type":"boolean"},"sendPguidAsKey":{"description":"Send PGUID as key on biographic base update.\n\nIf absent, uses value of API config parameter `gbds.biographicBase.sendPguidAsKey`.\n","type":"boolean"},"sendTguidAsKey":{"description":"Send TGUID as key on biographic base update.\n\nIf absent, uses value of API config parameter `gbds.biographicBase.sendTguidAsKey`.\n","type":"boolean"}}},"EnrollResponse":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"description":"Status of the enroll transaction.","type":"string","enum":["ENQUEUED","PROCESSING","ENROLLED","EXCEPTION","FAILED","PENDING","REFUSED"]},"tguid":{"description":"Global unique id of the transaction.","type":"string"},"biographicBaseStatus":{"$ref":"#/components/schemas/BiographicBaseStatus"}}}}},"BiographicBaseStatus":{"description":"Status of the biographic base.\n- `UNAVAILABLE`: When all Biobase Servers are off.\n- `TIMEOUT`: When at least one Biobase Server is ON but the call timed out.\n- `UNAUTHORIZED`:\n  - If the **lookAllServers** conf is **ON**, it indicates that all running servers returned that the API authentication is unauthorized.\n  - If the **lookAllServers** conf is **OFF**, it indicates that the server that received the biographic request returned that the API authentication is unauthorized.\n- `INVALID_DATA`: The Biobase Server returned that the data request from the API is invalid. It is not supposed to happen if Biobase Server is implemented according to the Biographic Base API.\n- `NOT_FOUND`:\n  - If the **lookAllServers** conf is **ON**, it indicates that the person keys were not found on all Biobase Servers configured.\n  - If the **lookAllServers** conf is **OFF**, it indicates that person keys were not found on the server that received the biographic request.\n- `OK`: The Biobase Server returned biographics/face for the given person keys.\n","type":"string","enum":["UNAVAILABLE","TIMEOUT","UNAUTHORIZED","INVALID_DATA","NOT_FOUND","OK"]},"ValidationError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["VALIDATION_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["MISSING_PGUID","MISSING_PERSON","MISSING_BIOMETRIC","INVALID_PARAMETER_COMBINATION","MISSING_REQUIRED_QUERY_PARAMETER","MISSING_REQUIRED_ENTITY_ATTRIBUTE","UNKNOWN_ENTITY_ATTRIBUTE","QUERY_PARAMETER_OUT_OF_RANGE","PARAMETER_OUT_OF_RANGE","PGUID_IS_EMPTY","FORBIDDEN_ATTRIBUTE_SET","INVALID_TOKEN_GRANT_SPEC","INVALID_ENUM_VALUE","MALFORMED_JSON","INVALID_JSON_ATTRIBUTE_VALUE","INVALID_URL_ATTRIBUTE_VALUE","UNKNOWN_REQUEST_READ_ERROR","PAGE_NOT_FOUND","UNSUPPORTED_HTTP_METHOD"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}},"ProcessingError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["PROCESSING_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["ENTITY_DOES_NOT_EXIST","ENTITY_ALREADY_EXISTS","POOR_BIOMETRIC_QUALITY","DUPLICATED_BIOMETRIC","BIOMETRIC_OUT_OF_SEQUENCE","BIOMETRIC_ERROR","INSUFFICIENT_TEMPLATE_COUNT","UNEXTRACTABLE_BIOMETRIC","PERSON_DOES_NOT_EXIST","PERSON_NOT_ACTIVE","PERSON_DOES_NOT_HAVE_BIOMETRIC","PENDING_EXCEPTIONS","ENROLL_TRANSACTION_DOES_NOT_EXIST","ENROLL_PERSON_NOT_FOUND","INVALID_TRANSACTION_STATE","EXCEPTION_DOES_NOT_EXIST","TREAT_EXCEPTION_TRANSACTION_DOES_NOT_EXIST","USER_NOT_AUTHORIZED_TO_TREAT_EXCEPTION","UL_IS_ALREADY_SOLVED","INVALID_PARAMETER_COMBINATION","CAN_NOT_DISABLE_ONLY_ENROLL_TRANSACTION","PERSON_DOES_NOT_OWN_TRANSACTION","TRANSACTION_IS_ALREADY_DISABLED","CAN_NOT_DISABLE_TRANSACTION_OF_UNSUPPORTED_TYPE","INVALID_EBTS_TYPE9_CONTENT","EXTERNAL_ID_DOES_NOT_EXIST","EXCEPTION_IS_ALREADY_TREATED","INVALID_TREATMENT_FOR_EXCEPTION","ENROLL_IS_ALREADY_ASSIGNED","ENROLL_IS_ALREADY_UNASSIGNED","ENROLL_IS_NOT_PENDING","ENROLL_IS_NOT_ASSIGNED","ENROLL_HAS_DIFFERENT_ASSIGNED_USER","NO_PGUID_FOUND_FOR_KEY","NO_SEARCHABLE_BIOMETRIC"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}},"InternalError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["INTERNAL_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["DRIVER_OFFLINE","CREDENTIAL_SERVER_CONNECTION_ERROR","CLIENT_NOT_INITIALIZE","TRUSTED_ENROLL_WITH_PENDING_STATUS","SUBJECT_NOT_SET","UNKNOWN"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}}}}}
```

## listPeople

> This method returns a list of people who match the given search criteria.

```json
{"openapi":"3.0.1","info":{"title":"GBDS API","version":"4.7.0"},"servers":[{"url":"http://<ip>:8085/gbds/v2"}],"paths":{"/people/list":{"post":{"description":"This method returns a list of people who match the given search criteria.","tags":["people"],"operationId":"listPeople","summary":"listPeople","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListPeopleRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListPeopleResponse"}}}},"400":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalError"}}}}}}}},"components":{"schemas":{"ListPeopleRequest":{"type":"object","properties":{"data":{"type":"object","properties":{"personFields":{"description":"Defines the return information.","uniqueItems":true,"type":"array","items":{"type":"string","enum":["BIOMETRIC","AUXILIARIES","KEYS","BIOGRAPHICS","LABELS","METADATA","BASIC_FIELDS","NO_FIELDS","ALL_FIELDS"]}},"pguids":{"description":"This field is a array of PGUIDs.","type":"array","items":{"type":"string"}},"pageIndex":{"description":"Used for paging the result. Given the list, A, of matched People; pageIndex determines which page of A, of size pageSize, to be returned in the response.","type":"integer","format":"int64"},"pageSize":{"description":"Number of people, starting from first, to be returned in the response.","type":"integer"},"restrictions":{"description":"Search restrictions, as key, biographic, label, date, and metadata.","type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/RestrictionBiographic"},{"$ref":"#/components/schemas/RestrictionDate"},{"$ref":"#/components/schemas/RestrictionKey"},{"$ref":"#/components/schemas/RestrictionLabel"}]}},"operator":{"description":"Logical operator used in the request.","type":"string","enum":["AND","OR"]},"includeAnomalies":{"description":"Whether to match People with anomalies.","type":"boolean"},"paginationCount":{"description":"Defines if total count on pagination will be on or off. It overwrites the value of gbds.peopleList.countFromRDB setting in the configuration file.","type":"boolean"},"biographicBase":{"description":"Determines if the API will try to get biographics from the Biobase Server or not.","type":"boolean"}}}}},"RestrictionBiographic":{"type":"object","properties":{"type":{"description":"Value MUST be BIOGRAPHIC","type":"string","default":"BIOGRAPHIC"},"id":{"type":"string"},"value":{"type":"string"},"exists":{"type":"boolean"},"matchMode":{"type":"string","default":"EXACT","enum":["START","EXACT","ANYWHERE","END","NOT_EQUALS"]}}},"RestrictionDate":{"type":"object","properties":{"type":{"description":"Value MUST be DATE.","type":"string","default":"DATE"},"startDate":{"description":"Start time. Must be in milliseconds.","type":"integer"},"endDate":{"description":"End time. Must be in milliseconds.","type":"integer"}}},"RestrictionKey":{"type":"object","properties":{"type":{"description":"Value MUST be KEY.","type":"string","default":"KEY"},"id":{"type":"string"},"value":{"type":"string"},"exists":{"type":"boolean"},"matchMode":{"type":"string","default":"EXACT","enum":["START","EXACT","ANYWHERE","END","NOT_EQUALS"]}}},"RestrictionLabel":{"type":"object","properties":{"type":{"description":"Value MUST be LABEL.","type":"string","default":"LABEL"},"label":{"type":"string"},"exists":{"type":"boolean"}}},"ListPeopleResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Person"}},"pagination":{"oneOf":[{"$ref":"#/components/schemas/Pagination"},{"$ref":"#/components/schemas/PaginationOff"}]}}},"Person":{"type":"object","properties":{"pguid":{"description":"Global unique ID of the Person. This attribute is assigned by the AFIS once the person is successfully enrolled","type":"string"},"lastEnrollTguid":{"description":"Global unique ID of the latest transaction on this Person.","type":"string"},"timestamp":{"description":"Timestamp of the latest transaction on this Person.","type":"integer","format":"int64"},"keys":{"type":"array","items":{"$ref":"#/components/schemas/Key"}},"biographics":{"type":"array","items":{"$ref":"#/components/schemas/Biographic"}},"biometric":{"type":"array","items":{"$ref":"#/components/schemas/Biometric"}},"auxiliaries":{"type":"array","items":{"$ref":"#/components/schemas/Biometric"}},"metadata":{"description":"Arbitrary data associated with the person.","type":"array","items":{"type":"string"}},"labels":{"description":"Arbitrary labels associated with a person, which can be used as filters for database queries.","uniqueItems":true,"type":"array","items":{"type":"string"}},"history":{"$ref":"#/components/schemas/History"},"biographicBaseStatus":{"$ref":"#/components/schemas/BiographicBaseStatus"}}},"Key":{"type":"object","properties":{"id":{"description":"Name of entity identifier.","type":"string"},"value":{"description":"Value of entity identifier.","type":"string"}}},"Biographic":{"type":"object","properties":{"id":{"description":"ID of the biographic data being stored.\n\nBiobase Server biographics have their IDs prepended with `bs-`. For example, `bs-name` and `bs-surname`.\n","type":"string"},"value":{"description":"Value of the biographic data.","type":"string"}}},"Biometric":{"type":"object","oneOf":[{"$ref":"#/components/schemas/CONSOLIDATED_TEMPLATE"},{"$ref":"#/components/schemas/TEMPLATE"},{"$ref":"#/components/schemas/ORIGINAL"}],"discriminator":{"propertyName":"source"}},"CONSOLIDATED_TEMPLATE":{"type":"object","properties":{"source":{"description":"How the biometric data was obtained.","type":"string","enum":["CONSOLIDATED_TEMPLATE"]},"type":{"description":"Type of the biometric data.","type":"string","enum":["FINGERPRINT","PALMPRINT","FOOTPRINT","FACE","IRIS","SIGNATURE","SEQUENCE_CONTROL","NEWBORN_PALMPRINT","OTHER"]},"format":{"description":"Format of the biometric data.","type":"string","enum":["PRIVATE","ISO","ANSI","UNKNOWN","EBTS_TYPE9"]},"properties":{"$ref":"#/components/schemas/BiometricProperties"},"index":{"description":"Identifies which biometric, of the specified type, is being sent.","type":"integer","format":"int32"},"content":{"description":"Base64 encoded biometric data.","type":"string"},"quality":{"description":"Given the quality of the extracted biometric template. The quality is unbounded and starts at 0.","type":"integer","format":"int32"}}},"BiometricProperties":{"type":"object","properties":{"width":{"description":"Width, in pixels, of the image. If 0, GBDS will try to extract this information from the image header.","type":"integer","format":"int32"},"height":{"description":"Height, in pixels, of the image. If 0, GBDS will try to extract this information from the image header.","type":"integer","format":"int32"},"resolution":{"description":"Image or template resolution.","type":"integer","format":"int32"},"ratio":{"description":"Proportion of the image.","type":"number","format":"double"},"matcherId":{"description":"ID of the Biometric Matcher to be used in verification and identification operations.","type":"integer","format":"int32"},"extractorId":{"description":"ID of the extractor to be used on the image.","type":"integer","format":"int32"}}},"TEMPLATE":{"type":"object","properties":{"source":{"description":"How the biometric data was obtained.","type":"string","enum":["TEMPLATE"]},"type":{"description":"Type of the biometric data.","type":"string","enum":["FINGERPRINT","PALMPRINT","FOOTPRINT","FACE","IRIS","SIGNATURE","SEQUENCE_CONTROL","NEWBORN_PALMPRINT","OTHER"]},"format":{"description":"Format of the biometric data.","type":"string","enum":["PRIVATE","ISO","ANSI","UNKNOWN","EBTS_TYPE9"]},"properties":{"$ref":"#/components/schemas/BiometricProperties"},"index":{"description":"Identifies which biometric, of the specified type, is being sent.","type":"integer","format":"int32"},"content":{"description":"Base64 encoded biometric data.","type":"string"},"quality":{"description":"Given the quality of the extracted biometric template. The quality is unbounded and starts at 0.","type":"integer","format":"int32"}}},"ORIGINAL":{"type":"object","properties":{"source":{"description":"How the biometric data was obtained.","type":"string","enum":["ORIGINAL"]},"type":{"description":"Type of the biometric data.","type":"string","enum":["FINGERPRINT","PALMPRINT","FOOTPRINT","FACE","IRIS","VOICE","SIGNATURE","SEQUENCE_CONTROL","NEWBORN_PALMPRINT","OTHER"]},"format":{"description":"Format of the biometric data.","type":"string","enum":["RAW","WSQ","JPEG","JPEG2000","PNG","TIFF","GIF","BMP","PCM","WAV","PRIVATE","ISO","ANSI","UNKNOWN","EBTS_TYPE9"]},"properties":{"$ref":"#/components/schemas/BiometricProperties"},"index":{"description":"Identifies which biometric, of the specified type, is being sent.","type":"integer","format":"int32"},"content":{"description":"Base64 encoded biometric data.","type":"string"},"quality":{"description":"Given the quality of the extracted biometric template. The quality is unbounded and starts at 0.","type":"integer","format":"int32"}}},"History":{"type":"object","properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/HistoryEvent"}}}},"HistoryEvent":{"required":["type"],"type":"object","properties":{"tguid":{"description":"Global unique ID of the transaction.","type":"string"},"timestamp":{"description":"Timestamp of event/transaction.","type":"integer","format":"int64"},"type":{"description":"Type of event/transaction.","type":"string"},"targetTguid":{"description":"Global unique ID of the transaction that was disabled.","type":"string"}},"discriminator":{"propertyName":"type"}},"BiographicBaseStatus":{"description":"Status of the biographic base.\n- `UNAVAILABLE`: When all Biobase Servers are off.\n- `TIMEOUT`: When at least one Biobase Server is ON but the call timed out.\n- `UNAUTHORIZED`:\n  - If the **lookAllServers** conf is **ON**, it indicates that all running servers returned that the API authentication is unauthorized.\n  - If the **lookAllServers** conf is **OFF**, it indicates that the server that received the biographic request returned that the API authentication is unauthorized.\n- `INVALID_DATA`: The Biobase Server returned that the data request from the API is invalid. It is not supposed to happen if Biobase Server is implemented according to the Biographic Base API.\n- `NOT_FOUND`:\n  - If the **lookAllServers** conf is **ON**, it indicates that the person keys were not found on all Biobase Servers configured.\n  - If the **lookAllServers** conf is **OFF**, it indicates that person keys were not found on the server that received the biographic request.\n- `OK`: The Biobase Server returned biographics/face for the given person keys.\n","type":"string","enum":["UNAVAILABLE","TIMEOUT","UNAUTHORIZED","INVALID_DATA","NOT_FOUND","OK"]},"Pagination":{"type":"object","properties":{"total":{"description":"Total number of elements that matched the selection criteria.","type":"integer","format":"int64"},"count":{"description":"Number of elements in the response.","type":"integer","format":"int32"},"pageSize":{"description":"Size of the page.","type":"integer","format":"int32"},"currentPage":{"description":"Number of the current page.","type":"integer","format":"int64"},"totalPages":{"description":"Number of total pages.","type":"integer","format":"int64"}}},"PaginationOff":{"type":"object","properties":{"count":{"description":"Number of elements in the response.","type":"integer","format":"int32"},"pageSize":{"description":"Size of the page.","type":"integer","format":"int32"},"currentPage":{"description":"Number of the current page.","type":"integer","format":"int64"}}},"ValidationError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["VALIDATION_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["MISSING_PGUID","MISSING_PERSON","MISSING_BIOMETRIC","INVALID_PARAMETER_COMBINATION","MISSING_REQUIRED_QUERY_PARAMETER","MISSING_REQUIRED_ENTITY_ATTRIBUTE","UNKNOWN_ENTITY_ATTRIBUTE","QUERY_PARAMETER_OUT_OF_RANGE","PARAMETER_OUT_OF_RANGE","PGUID_IS_EMPTY","FORBIDDEN_ATTRIBUTE_SET","INVALID_TOKEN_GRANT_SPEC","INVALID_ENUM_VALUE","MALFORMED_JSON","INVALID_JSON_ATTRIBUTE_VALUE","INVALID_URL_ATTRIBUTE_VALUE","UNKNOWN_REQUEST_READ_ERROR","PAGE_NOT_FOUND","UNSUPPORTED_HTTP_METHOD"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}},"InternalError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["INTERNAL_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["DRIVER_OFFLINE","CREDENTIAL_SERVER_CONNECTION_ERROR","CLIENT_NOT_INITIALIZE","TRUSTED_ENROLL_WITH_PENDING_STATUS","SUBJECT_NOT_SET","UNKNOWN"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}}}}}
```

## deleteBiometric

> This method delete a specific biometric in a person's register, given the person's PGUID and biometric index.

```json
{"openapi":"3.0.1","info":{"title":"GBDS API","version":"4.7.0"},"servers":[{"url":"http://<ip>:8085/gbds/v2"}],"paths":{"/people/{pguid}/biometric/{biometricIndex}":{"delete":{"description":"This method delete a specific biometric in a person's register, given the person's PGUID and biometric index.","tags":["people"],"operationId":"deleteBiometric","summary":"deleteBiometric","parameters":[{"name":"pguid","description":"Global unique ID of the person.","in":"path","required":true,"schema":{"type":"string"}},{"name":"biometricIndex","description":"Finger index to be excluded.","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}}}}}}}
```

## getPguidUsingKeys

> This method returns the PGUID of a person, given its search keys.

```json
{"openapi":"3.0.1","info":{"title":"GBDS API","version":"4.7.0"},"servers":[{"url":"http://<ip>:8085/gbds/v2"}],"paths":{"/people/pguid":{"get":{"description":"This method returns the PGUID of a person, given its search keys.","tags":["people"],"operationId":"getPguidUsingKeys","summary":"getPguidUsingKeys","parameters":[{"name":"key_id","description":"ID of the key to be used to identify the reference person.","in":"query","required":true,"schema":{"type":"string"}},{"name":"key_value","description":"Value of the key to be used to identify the reference person.","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPeoplePguidUsingKeyResponse"}}}},"400":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"404":{"description":"Person does not exist","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessingError"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalError"}}}}}}}},"components":{"schemas":{"GetPeoplePguidUsingKeyResponse":{"type":"object","properties":{"data":{"description":"Person PGUID.","type":"string"}}},"ValidationError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["VALIDATION_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["MISSING_PGUID","MISSING_PERSON","MISSING_BIOMETRIC","INVALID_PARAMETER_COMBINATION","MISSING_REQUIRED_QUERY_PARAMETER","MISSING_REQUIRED_ENTITY_ATTRIBUTE","UNKNOWN_ENTITY_ATTRIBUTE","QUERY_PARAMETER_OUT_OF_RANGE","PARAMETER_OUT_OF_RANGE","PGUID_IS_EMPTY","FORBIDDEN_ATTRIBUTE_SET","INVALID_TOKEN_GRANT_SPEC","INVALID_ENUM_VALUE","MALFORMED_JSON","INVALID_JSON_ATTRIBUTE_VALUE","INVALID_URL_ATTRIBUTE_VALUE","UNKNOWN_REQUEST_READ_ERROR","PAGE_NOT_FOUND","UNSUPPORTED_HTTP_METHOD"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}},"ProcessingError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["PROCESSING_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["ENTITY_DOES_NOT_EXIST","ENTITY_ALREADY_EXISTS","POOR_BIOMETRIC_QUALITY","DUPLICATED_BIOMETRIC","BIOMETRIC_OUT_OF_SEQUENCE","BIOMETRIC_ERROR","INSUFFICIENT_TEMPLATE_COUNT","UNEXTRACTABLE_BIOMETRIC","PERSON_DOES_NOT_EXIST","PERSON_NOT_ACTIVE","PERSON_DOES_NOT_HAVE_BIOMETRIC","PENDING_EXCEPTIONS","ENROLL_TRANSACTION_DOES_NOT_EXIST","ENROLL_PERSON_NOT_FOUND","INVALID_TRANSACTION_STATE","EXCEPTION_DOES_NOT_EXIST","TREAT_EXCEPTION_TRANSACTION_DOES_NOT_EXIST","USER_NOT_AUTHORIZED_TO_TREAT_EXCEPTION","UL_IS_ALREADY_SOLVED","INVALID_PARAMETER_COMBINATION","CAN_NOT_DISABLE_ONLY_ENROLL_TRANSACTION","PERSON_DOES_NOT_OWN_TRANSACTION","TRANSACTION_IS_ALREADY_DISABLED","CAN_NOT_DISABLE_TRANSACTION_OF_UNSUPPORTED_TYPE","INVALID_EBTS_TYPE9_CONTENT","EXTERNAL_ID_DOES_NOT_EXIST","EXCEPTION_IS_ALREADY_TREATED","INVALID_TREATMENT_FOR_EXCEPTION","ENROLL_IS_ALREADY_ASSIGNED","ENROLL_IS_ALREADY_UNASSIGNED","ENROLL_IS_NOT_PENDING","ENROLL_IS_NOT_ASSIGNED","ENROLL_HAS_DIFFERENT_ASSIGNED_USER","NO_PGUID_FOUND_FOR_KEY","NO_SEARCHABLE_BIOMETRIC"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}},"InternalError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["INTERNAL_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["DRIVER_OFFLINE","CREDENTIAL_SERVER_CONNECTION_ERROR","CLIENT_NOT_INITIALIZE","TRUSTED_ENROLL_WITH_PENDING_STATUS","SUBJECT_NOT_SET","UNKNOWN"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}}}}}
```

## disablePeopleTransaction

> This method deletes a transaction from a person, given its TGUID and the person's PGUID.

```json
{"openapi":"3.0.1","info":{"title":"GBDS API","version":"4.7.0"},"servers":[{"url":"http://<ip>:8085/gbds/v2"}],"paths":{"/people/{pguid}/transactions/{tguid}":{"delete":{"description":"This method deletes a transaction from a person, given its TGUID and the person's PGUID.","tags":["people"],"operationId":"disablePeopleTransaction","summary":"disablePeopleTransaction","parameters":[{"name":"pguid","description":"Global unique ID of the person.","in":"path","required":true,"schema":{"type":"string"}},{"name":"tguid","description":"Global unique ID of the transaction.","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Deleted","content":{"*/*":{"schema":{"type":"object"}}}},"404":{"description":"Person does not exist","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessingError"}}}},"422":{"description":"Person does not have a transaction, transaction is already disabled, could not disable transaction.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessingError"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalError"}}}}}}}},"components":{"schemas":{"ProcessingError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["PROCESSING_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["ENTITY_DOES_NOT_EXIST","ENTITY_ALREADY_EXISTS","POOR_BIOMETRIC_QUALITY","DUPLICATED_BIOMETRIC","BIOMETRIC_OUT_OF_SEQUENCE","BIOMETRIC_ERROR","INSUFFICIENT_TEMPLATE_COUNT","UNEXTRACTABLE_BIOMETRIC","PERSON_DOES_NOT_EXIST","PERSON_NOT_ACTIVE","PERSON_DOES_NOT_HAVE_BIOMETRIC","PENDING_EXCEPTIONS","ENROLL_TRANSACTION_DOES_NOT_EXIST","ENROLL_PERSON_NOT_FOUND","INVALID_TRANSACTION_STATE","EXCEPTION_DOES_NOT_EXIST","TREAT_EXCEPTION_TRANSACTION_DOES_NOT_EXIST","USER_NOT_AUTHORIZED_TO_TREAT_EXCEPTION","UL_IS_ALREADY_SOLVED","INVALID_PARAMETER_COMBINATION","CAN_NOT_DISABLE_ONLY_ENROLL_TRANSACTION","PERSON_DOES_NOT_OWN_TRANSACTION","TRANSACTION_IS_ALREADY_DISABLED","CAN_NOT_DISABLE_TRANSACTION_OF_UNSUPPORTED_TYPE","INVALID_EBTS_TYPE9_CONTENT","EXTERNAL_ID_DOES_NOT_EXIST","EXCEPTION_IS_ALREADY_TREATED","INVALID_TREATMENT_FOR_EXCEPTION","ENROLL_IS_ALREADY_ASSIGNED","ENROLL_IS_ALREADY_UNASSIGNED","ENROLL_IS_NOT_PENDING","ENROLL_IS_NOT_ASSIGNED","ENROLL_HAS_DIFFERENT_ASSIGNED_USER","NO_PGUID_FOUND_FOR_KEY","NO_SEARCHABLE_BIOMETRIC"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}},"InternalError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["INTERNAL_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["DRIVER_OFFLINE","CREDENTIAL_SERVER_CONNECTION_ERROR","CLIENT_NOT_INITIALIZE","TRUSTED_ENROLL_WITH_PENDING_STATUS","SUBJECT_NOT_SET","UNKNOWN"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}}}}}
```

## trustedEnroll

> This method performs an enrollment operation without comparing biometrics.

```json
{"openapi":"3.0.1","info":{"title":"GBDS API","version":"4.7.0"},"servers":[{"url":"http://<ip>:8085/gbds/v2"}],"paths":{"/people/trusted":{"post":{"description":"This method performs an enrollment operation without comparing biometrics.","tags":["people"],"operationId":"trustedEnroll","summary":"trustedEnroll","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePeopleTrustedRequest"}}},"required":true},"responses":{"201":{"description":"Enrolled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrollResponse"}}}},"202":{"description":"Enqueued, processing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrollResponse"}}}},"400":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalError"}}}}}}}},"components":{"schemas":{"CreatePeopleTrustedRequest":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PersonRequest"},"meta":{"$ref":"#/components/schemas/TrustedEnrollMeta"}}},"PersonRequest":{"type":"object","properties":{"timestamp":{"description":"Timestamp of the latest transaction on this Person.","type":"integer","format":"int64"},"keys":{"type":"array","items":{"$ref":"#/components/schemas/Key"}},"biographics":{"type":"array","items":{"$ref":"#/components/schemas/Biographic"}},"biometric":{"type":"array","items":{"$ref":"#/components/schemas/Biometric"}},"auxiliaries":{"type":"array","items":{"$ref":"#/components/schemas/Biometric"}},"metadata":{"description":"Arbitrary data associated with the person.","type":"string"},"labels":{"description":"Arbitrary labels associated with a person, which can be used as filters for database queries.","uniqueItems":true,"type":"array","items":{"type":"string"}}}},"Key":{"type":"object","properties":{"id":{"description":"Name of entity identifier.","type":"string"},"value":{"description":"Value of entity identifier.","type":"string"}}},"Biographic":{"type":"object","properties":{"id":{"description":"ID of the biographic data being stored.\n\nBiobase Server biographics have their IDs prepended with `bs-`. For example, `bs-name` and `bs-surname`.\n","type":"string"},"value":{"description":"Value of the biographic data.","type":"string"}}},"Biometric":{"type":"object","oneOf":[{"$ref":"#/components/schemas/CONSOLIDATED_TEMPLATE"},{"$ref":"#/components/schemas/TEMPLATE"},{"$ref":"#/components/schemas/ORIGINAL"}],"discriminator":{"propertyName":"source"}},"CONSOLIDATED_TEMPLATE":{"type":"object","properties":{"source":{"description":"How the biometric data was obtained.","type":"string","enum":["CONSOLIDATED_TEMPLATE"]},"type":{"description":"Type of the biometric data.","type":"string","enum":["FINGERPRINT","PALMPRINT","FOOTPRINT","FACE","IRIS","SIGNATURE","SEQUENCE_CONTROL","NEWBORN_PALMPRINT","OTHER"]},"format":{"description":"Format of the biometric data.","type":"string","enum":["PRIVATE","ISO","ANSI","UNKNOWN","EBTS_TYPE9"]},"properties":{"$ref":"#/components/schemas/BiometricProperties"},"index":{"description":"Identifies which biometric, of the specified type, is being sent.","type":"integer","format":"int32"},"content":{"description":"Base64 encoded biometric data.","type":"string"},"quality":{"description":"Given the quality of the extracted biometric template. The quality is unbounded and starts at 0.","type":"integer","format":"int32"}}},"BiometricProperties":{"type":"object","properties":{"width":{"description":"Width, in pixels, of the image. If 0, GBDS will try to extract this information from the image header.","type":"integer","format":"int32"},"height":{"description":"Height, in pixels, of the image. If 0, GBDS will try to extract this information from the image header.","type":"integer","format":"int32"},"resolution":{"description":"Image or template resolution.","type":"integer","format":"int32"},"ratio":{"description":"Proportion of the image.","type":"number","format":"double"},"matcherId":{"description":"ID of the Biometric Matcher to be used in verification and identification operations.","type":"integer","format":"int32"},"extractorId":{"description":"ID of the extractor to be used on the image.","type":"integer","format":"int32"}}},"TEMPLATE":{"type":"object","properties":{"source":{"description":"How the biometric data was obtained.","type":"string","enum":["TEMPLATE"]},"type":{"description":"Type of the biometric data.","type":"string","enum":["FINGERPRINT","PALMPRINT","FOOTPRINT","FACE","IRIS","SIGNATURE","SEQUENCE_CONTROL","NEWBORN_PALMPRINT","OTHER"]},"format":{"description":"Format of the biometric data.","type":"string","enum":["PRIVATE","ISO","ANSI","UNKNOWN","EBTS_TYPE9"]},"properties":{"$ref":"#/components/schemas/BiometricProperties"},"index":{"description":"Identifies which biometric, of the specified type, is being sent.","type":"integer","format":"int32"},"content":{"description":"Base64 encoded biometric data.","type":"string"},"quality":{"description":"Given the quality of the extracted biometric template. The quality is unbounded and starts at 0.","type":"integer","format":"int32"}}},"ORIGINAL":{"type":"object","properties":{"source":{"description":"How the biometric data was obtained.","type":"string","enum":["ORIGINAL"]},"type":{"description":"Type of the biometric data.","type":"string","enum":["FINGERPRINT","PALMPRINT","FOOTPRINT","FACE","IRIS","VOICE","SIGNATURE","SEQUENCE_CONTROL","NEWBORN_PALMPRINT","OTHER"]},"format":{"description":"Format of the biometric data.","type":"string","enum":["RAW","WSQ","JPEG","JPEG2000","PNG","TIFF","GIF","BMP","PCM","WAV","PRIVATE","ISO","ANSI","UNKNOWN","EBTS_TYPE9"]},"properties":{"$ref":"#/components/schemas/BiometricProperties"},"index":{"description":"Identifies which biometric, of the specified type, is being sent.","type":"integer","format":"int32"},"content":{"description":"Base64 encoded biometric data.","type":"string"},"quality":{"description":"Given the quality of the extracted biometric template. The quality is unbounded and starts at 0.","type":"integer","format":"int32"}}},"TrustedEnrollMeta":{"description":"Contains extra information about the API call.","type":"object","properties":{"timeout":{"description":"Time, in milliseconds, waiting for the completion of the operation. If this value is -1, then the method is fully synchronous. If the timeout value is 0, then the method is fully asynchronous. If>0, the call expires after this time (in milliseconds).","type":"integer","format":"int32"},"priority":{"description":"Priority of the enroll operation.","type":"string","enum":["GOD_PRIORITY","HIGHEST_PRIORITY","HIGHER_PRIORITY","HIGH_PRIORITY","DEFAULT_PRIORITY","LOW_PRIORITY","LOWER_PRIORITY","LOWEST_PRIORITY"]},"active":{"description":"Determines if the biometric sent will be loaded into RAM and be available for Search and biometric validation.","type":"boolean"},"externalIDs":{"description":"a","type":"array","items":{"$ref":"#/components/schemas/ExternalIDRequest"}},"labelsOperation":{"description":"a","type":"string","enum":["REPLACE","ACCUMULATE"]},"liveness":{"description":"Flag to request liveness verification on query face image. If activated, a bonafide score will be returned on get transaction.","type":"boolean"},"biographicBase":{"$ref":"#/components/schemas/BiographicBaseFlags"}}},"ExternalIDRequest":{"type":"object","properties":{"name":{"type":"string"},"keys":{"type":"string"}}},"BiographicBaseFlags":{"description":"Biographic database interaction configuration flags.","type":"object","properties":{"autoUpdate":{"description":"Update biographic base.\n\nIf absent, uses value of API config parameter `gbds.biographicBase.autoUpdate`.\n","type":"boolean"},"sendPguidAsKey":{"description":"Send PGUID as key on biographic base update.\n\nIf absent, uses value of API config parameter `gbds.biographicBase.sendPguidAsKey`.\n","type":"boolean"},"sendTguidAsKey":{"description":"Send TGUID as key on biographic base update.\n\nIf absent, uses value of API config parameter `gbds.biographicBase.sendTguidAsKey`.\n","type":"boolean"}}},"EnrollResponse":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"description":"Status of the enroll transaction.","type":"string","enum":["ENQUEUED","PROCESSING","ENROLLED","EXCEPTION","FAILED","PENDING","REFUSED"]},"tguid":{"description":"Global unique id of the transaction.","type":"string"},"biographicBaseStatus":{"$ref":"#/components/schemas/BiographicBaseStatus"}}}}},"BiographicBaseStatus":{"description":"Status of the biographic base.\n- `UNAVAILABLE`: When all Biobase Servers are off.\n- `TIMEOUT`: When at least one Biobase Server is ON but the call timed out.\n- `UNAUTHORIZED`:\n  - If the **lookAllServers** conf is **ON**, it indicates that all running servers returned that the API authentication is unauthorized.\n  - If the **lookAllServers** conf is **OFF**, it indicates that the server that received the biographic request returned that the API authentication is unauthorized.\n- `INVALID_DATA`: The Biobase Server returned that the data request from the API is invalid. It is not supposed to happen if Biobase Server is implemented according to the Biographic Base API.\n- `NOT_FOUND`:\n  - If the **lookAllServers** conf is **ON**, it indicates that the person keys were not found on all Biobase Servers configured.\n  - If the **lookAllServers** conf is **OFF**, it indicates that person keys were not found on the server that received the biographic request.\n- `OK`: The Biobase Server returned biographics/face for the given person keys.\n","type":"string","enum":["UNAVAILABLE","TIMEOUT","UNAUTHORIZED","INVALID_DATA","NOT_FOUND","OK"]},"ValidationError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["VALIDATION_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["MISSING_PGUID","MISSING_PERSON","MISSING_BIOMETRIC","INVALID_PARAMETER_COMBINATION","MISSING_REQUIRED_QUERY_PARAMETER","MISSING_REQUIRED_ENTITY_ATTRIBUTE","UNKNOWN_ENTITY_ATTRIBUTE","QUERY_PARAMETER_OUT_OF_RANGE","PARAMETER_OUT_OF_RANGE","PGUID_IS_EMPTY","FORBIDDEN_ATTRIBUTE_SET","INVALID_TOKEN_GRANT_SPEC","INVALID_ENUM_VALUE","MALFORMED_JSON","INVALID_JSON_ATTRIBUTE_VALUE","INVALID_URL_ATTRIBUTE_VALUE","UNKNOWN_REQUEST_READ_ERROR","PAGE_NOT_FOUND","UNSUPPORTED_HTTP_METHOD"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}},"InternalError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["INTERNAL_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["DRIVER_OFFLINE","CREDENTIAL_SERVER_CONNECTION_ERROR","CLIENT_NOT_INITIALIZE","TRUSTED_ENROLL_WITH_PENDING_STATUS","SUBJECT_NOT_SET","UNKNOWN"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}}}}}
```

## trustedUpdate

> This method performs an update operation without comparing biometrics.

```json
{"openapi":"3.0.1","info":{"title":"GBDS API","version":"4.7.0"},"servers":[{"url":"http://<ip>:8085/gbds/v2"}],"paths":{"/people/{pguid}/trusted":{"put":{"description":"This method performs an update operation without comparing biometrics.","tags":["people"],"operationId":"trustedUpdate","summary":"trustedUpdate","parameters":[{"name":"pguid","description":"Global unique ID of the person.","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePeopleTrustedRequest"}}},"required":true},"responses":{"201":{"description":"Enrolled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrollResponse"}}}},"202":{"description":"Enqueued, processing.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrollResponse"}}}},"400":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalError"}}}}}}}},"components":{"schemas":{"UpdatePeopleTrustedRequest":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PersonRequest"},"meta":{"$ref":"#/components/schemas/TrustedEnrollMeta"}}},"PersonRequest":{"type":"object","properties":{"timestamp":{"description":"Timestamp of the latest transaction on this Person.","type":"integer","format":"int64"},"keys":{"type":"array","items":{"$ref":"#/components/schemas/Key"}},"biographics":{"type":"array","items":{"$ref":"#/components/schemas/Biographic"}},"biometric":{"type":"array","items":{"$ref":"#/components/schemas/Biometric"}},"auxiliaries":{"type":"array","items":{"$ref":"#/components/schemas/Biometric"}},"metadata":{"description":"Arbitrary data associated with the person.","type":"string"},"labels":{"description":"Arbitrary labels associated with a person, which can be used as filters for database queries.","uniqueItems":true,"type":"array","items":{"type":"string"}}}},"Key":{"type":"object","properties":{"id":{"description":"Name of entity identifier.","type":"string"},"value":{"description":"Value of entity identifier.","type":"string"}}},"Biographic":{"type":"object","properties":{"id":{"description":"ID of the biographic data being stored.\n\nBiobase Server biographics have their IDs prepended with `bs-`. For example, `bs-name` and `bs-surname`.\n","type":"string"},"value":{"description":"Value of the biographic data.","type":"string"}}},"Biometric":{"type":"object","oneOf":[{"$ref":"#/components/schemas/CONSOLIDATED_TEMPLATE"},{"$ref":"#/components/schemas/TEMPLATE"},{"$ref":"#/components/schemas/ORIGINAL"}],"discriminator":{"propertyName":"source"}},"CONSOLIDATED_TEMPLATE":{"type":"object","properties":{"source":{"description":"How the biometric data was obtained.","type":"string","enum":["CONSOLIDATED_TEMPLATE"]},"type":{"description":"Type of the biometric data.","type":"string","enum":["FINGERPRINT","PALMPRINT","FOOTPRINT","FACE","IRIS","SIGNATURE","SEQUENCE_CONTROL","NEWBORN_PALMPRINT","OTHER"]},"format":{"description":"Format of the biometric data.","type":"string","enum":["PRIVATE","ISO","ANSI","UNKNOWN","EBTS_TYPE9"]},"properties":{"$ref":"#/components/schemas/BiometricProperties"},"index":{"description":"Identifies which biometric, of the specified type, is being sent.","type":"integer","format":"int32"},"content":{"description":"Base64 encoded biometric data.","type":"string"},"quality":{"description":"Given the quality of the extracted biometric template. The quality is unbounded and starts at 0.","type":"integer","format":"int32"}}},"BiometricProperties":{"type":"object","properties":{"width":{"description":"Width, in pixels, of the image. If 0, GBDS will try to extract this information from the image header.","type":"integer","format":"int32"},"height":{"description":"Height, in pixels, of the image. If 0, GBDS will try to extract this information from the image header.","type":"integer","format":"int32"},"resolution":{"description":"Image or template resolution.","type":"integer","format":"int32"},"ratio":{"description":"Proportion of the image.","type":"number","format":"double"},"matcherId":{"description":"ID of the Biometric Matcher to be used in verification and identification operations.","type":"integer","format":"int32"},"extractorId":{"description":"ID of the extractor to be used on the image.","type":"integer","format":"int32"}}},"TEMPLATE":{"type":"object","properties":{"source":{"description":"How the biometric data was obtained.","type":"string","enum":["TEMPLATE"]},"type":{"description":"Type of the biometric data.","type":"string","enum":["FINGERPRINT","PALMPRINT","FOOTPRINT","FACE","IRIS","SIGNATURE","SEQUENCE_CONTROL","NEWBORN_PALMPRINT","OTHER"]},"format":{"description":"Format of the biometric data.","type":"string","enum":["PRIVATE","ISO","ANSI","UNKNOWN","EBTS_TYPE9"]},"properties":{"$ref":"#/components/schemas/BiometricProperties"},"index":{"description":"Identifies which biometric, of the specified type, is being sent.","type":"integer","format":"int32"},"content":{"description":"Base64 encoded biometric data.","type":"string"},"quality":{"description":"Given the quality of the extracted biometric template. The quality is unbounded and starts at 0.","type":"integer","format":"int32"}}},"ORIGINAL":{"type":"object","properties":{"source":{"description":"How the biometric data was obtained.","type":"string","enum":["ORIGINAL"]},"type":{"description":"Type of the biometric data.","type":"string","enum":["FINGERPRINT","PALMPRINT","FOOTPRINT","FACE","IRIS","VOICE","SIGNATURE","SEQUENCE_CONTROL","NEWBORN_PALMPRINT","OTHER"]},"format":{"description":"Format of the biometric data.","type":"string","enum":["RAW","WSQ","JPEG","JPEG2000","PNG","TIFF","GIF","BMP","PCM","WAV","PRIVATE","ISO","ANSI","UNKNOWN","EBTS_TYPE9"]},"properties":{"$ref":"#/components/schemas/BiometricProperties"},"index":{"description":"Identifies which biometric, of the specified type, is being sent.","type":"integer","format":"int32"},"content":{"description":"Base64 encoded biometric data.","type":"string"},"quality":{"description":"Given the quality of the extracted biometric template. The quality is unbounded and starts at 0.","type":"integer","format":"int32"}}},"TrustedEnrollMeta":{"description":"Contains extra information about the API call.","type":"object","properties":{"timeout":{"description":"Time, in milliseconds, waiting for the completion of the operation. If this value is -1, then the method is fully synchronous. If the timeout value is 0, then the method is fully asynchronous. If>0, the call expires after this time (in milliseconds).","type":"integer","format":"int32"},"priority":{"description":"Priority of the enroll operation.","type":"string","enum":["GOD_PRIORITY","HIGHEST_PRIORITY","HIGHER_PRIORITY","HIGH_PRIORITY","DEFAULT_PRIORITY","LOW_PRIORITY","LOWER_PRIORITY","LOWEST_PRIORITY"]},"active":{"description":"Determines if the biometric sent will be loaded into RAM and be available for Search and biometric validation.","type":"boolean"},"externalIDs":{"description":"a","type":"array","items":{"$ref":"#/components/schemas/ExternalIDRequest"}},"labelsOperation":{"description":"a","type":"string","enum":["REPLACE","ACCUMULATE"]},"liveness":{"description":"Flag to request liveness verification on query face image. If activated, a bonafide score will be returned on get transaction.","type":"boolean"},"biographicBase":{"$ref":"#/components/schemas/BiographicBaseFlags"}}},"ExternalIDRequest":{"type":"object","properties":{"name":{"type":"string"},"keys":{"type":"string"}}},"BiographicBaseFlags":{"description":"Biographic database interaction configuration flags.","type":"object","properties":{"autoUpdate":{"description":"Update biographic base.\n\nIf absent, uses value of API config parameter `gbds.biographicBase.autoUpdate`.\n","type":"boolean"},"sendPguidAsKey":{"description":"Send PGUID as key on biographic base update.\n\nIf absent, uses value of API config parameter `gbds.biographicBase.sendPguidAsKey`.\n","type":"boolean"},"sendTguidAsKey":{"description":"Send TGUID as key on biographic base update.\n\nIf absent, uses value of API config parameter `gbds.biographicBase.sendTguidAsKey`.\n","type":"boolean"}}},"EnrollResponse":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"description":"Status of the enroll transaction.","type":"string","enum":["ENQUEUED","PROCESSING","ENROLLED","EXCEPTION","FAILED","PENDING","REFUSED"]},"tguid":{"description":"Global unique id of the transaction.","type":"string"},"biographicBaseStatus":{"$ref":"#/components/schemas/BiographicBaseStatus"}}}}},"BiographicBaseStatus":{"description":"Status of the biographic base.\n- `UNAVAILABLE`: When all Biobase Servers are off.\n- `TIMEOUT`: When at least one Biobase Server is ON but the call timed out.\n- `UNAUTHORIZED`:\n  - If the **lookAllServers** conf is **ON**, it indicates that all running servers returned that the API authentication is unauthorized.\n  - If the **lookAllServers** conf is **OFF**, it indicates that the server that received the biographic request returned that the API authentication is unauthorized.\n- `INVALID_DATA`: The Biobase Server returned that the data request from the API is invalid. It is not supposed to happen if Biobase Server is implemented according to the Biographic Base API.\n- `NOT_FOUND`:\n  - If the **lookAllServers** conf is **ON**, it indicates that the person keys were not found on all Biobase Servers configured.\n  - If the **lookAllServers** conf is **OFF**, it indicates that person keys were not found on the server that received the biographic request.\n- `OK`: The Biobase Server returned biographics/face for the given person keys.\n","type":"string","enum":["UNAVAILABLE","TIMEOUT","UNAUTHORIZED","INVALID_DATA","NOT_FOUND","OK"]},"ValidationError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["VALIDATION_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["MISSING_PGUID","MISSING_PERSON","MISSING_BIOMETRIC","INVALID_PARAMETER_COMBINATION","MISSING_REQUIRED_QUERY_PARAMETER","MISSING_REQUIRED_ENTITY_ATTRIBUTE","UNKNOWN_ENTITY_ATTRIBUTE","QUERY_PARAMETER_OUT_OF_RANGE","PARAMETER_OUT_OF_RANGE","PGUID_IS_EMPTY","FORBIDDEN_ATTRIBUTE_SET","INVALID_TOKEN_GRANT_SPEC","INVALID_ENUM_VALUE","MALFORMED_JSON","INVALID_JSON_ATTRIBUTE_VALUE","INVALID_URL_ATTRIBUTE_VALUE","UNKNOWN_REQUEST_READ_ERROR","PAGE_NOT_FOUND","UNSUPPORTED_HTTP_METHOD"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}},"InternalError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["INTERNAL_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["DRIVER_OFFLINE","CREDENTIAL_SERVER_CONNECTION_ERROR","CLIENT_NOT_INITIALIZE","TRUSTED_ENROLL_WITH_PENDING_STATUS","SUBJECT_NOT_SET","UNKNOWN"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}}}}}
```

## trustedAddKeys

> Adds new keys to a person.

```json
{"openapi":"3.0.1","info":{"title":"GBDS API","version":"4.7.0"},"servers":[{"url":"http://<ip>:8085/gbds/v2"}],"paths":{"/people/{pguid}/trusted/keys":{"post":{"description":"Adds new keys to a person.","tags":["people"],"operationId":"trustedAddKeys","summary":"trustedAddKeys","parameters":[{"name":"pguid","description":"Global unique ID of the person.","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrustedAddKeysRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrustedAddKeysResponse"}}}},"400":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}}}}}},"components":{"schemas":{"TrustedAddKeysRequest":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Key"}}}},"Key":{"type":"object","properties":{"id":{"description":"Name of entity identifier.","type":"string"},"value":{"description":"Value of entity identifier.","type":"string"}}},"TrustedAddKeysResponse":{"type":"object","properties":{"data":{"type":"object","properties":{"pguid":{"description":"Global unique ID of the Person to whom the keys were added.","type":"string"},"lastEnrollTguid":{"description":"Global unique ID of the current Person transaction that was changed.","type":"string"},"keys":{"description":"List of all keys of the Person, after new keys were added.","type":"array","items":{"$ref":"#/components/schemas/Key"}}}}}},"ValidationError":{"type":"object","properties":{"type":{"description":"Type of the Error","type":"string","enum":["VALIDATION_ERROR"]},"code":{"description":"Internal error code.","type":"string","enum":["MISSING_PGUID","MISSING_PERSON","MISSING_BIOMETRIC","INVALID_PARAMETER_COMBINATION","MISSING_REQUIRED_QUERY_PARAMETER","MISSING_REQUIRED_ENTITY_ATTRIBUTE","UNKNOWN_ENTITY_ATTRIBUTE","QUERY_PARAMETER_OUT_OF_RANGE","PARAMETER_OUT_OF_RANGE","PGUID_IS_EMPTY","FORBIDDEN_ATTRIBUTE_SET","INVALID_TOKEN_GRANT_SPEC","INVALID_ENUM_VALUE","MALFORMED_JSON","INVALID_JSON_ATTRIBUTE_VALUE","INVALID_URL_ATTRIBUTE_VALUE","UNKNOWN_REQUEST_READ_ERROR","PAGE_NOT_FOUND","UNSUPPORTED_HTTP_METHOD"]},"message":{"description":"Message detailing the nature of the Error","type":"string"},"meta":{"description":"Contains extra information about the API call.","type":"object"}}}}}}
```

## updateBiographicsOnBiobaseUsingPGUID

> This endpoint creates or updates biographics on the Biographic Base Server using BioBase configuration on API.\<br>\<br>\
> It uses any key provided to find a person/identity on the server. If it does, it updates it with all biographics provided, keeping the existing ones.\<br>\
> If it does not find any person/identity with the keys provided, it creates a person/identity on the server with the keys and biographics provided.\<br>\
> It calls all servers until one responds with a 2xx http code. If none respond successfully, it returns the last server response call code.\
> \
> \*\*Always send PGUID as key.\*\*<br>

```json
{"openapi":"3.0.1","info":{"title":"GBDS API","version":"4.7.0"},"servers":[{"url":"http://<ip>:8085/gbds/v2"}],"paths":{"/people/{pguid}/bio-base":{"post":{"description":"This endpoint creates or updates biographics on the Biographic Base Server using BioBase configuration on API.<br><br>\nIt uses any key provided to find a person/identity on the server. If it does, it updates it with all biographics provided, keeping the existing ones.<br>\nIf it does not find any person/identity with the keys provided, it creates a person/identity on the server with the keys and biographics provided.<br>\nIt calls all servers until one responds with a 2xx http code. If none respond successfully, it returns the last server response call code.\n\n**Always send PGUID as key.**\n","tags":["people"],"operationId":"updateBiographicsOnBiobaseUsingPGUID","summary":"updateBiographicsOnBiobaseUsingPGUID","parameters":[{"name":"pguid","description":"Global unique ID of the person.","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBiographicsOnBiobaseRequest"}}},"required":true},"responses":{"201":{"description":"Identity created on Biobase Server"},"202":{"description":"Identity updated on Biobase Server"}}}}},"components":{"schemas":{"UpdateBiographicsOnBiobaseRequest":{"type":"object","properties":{"data":{"type":"object","properties":{"keys":{"type":"array","items":{"$ref":"#/components/schemas/Key"}},"biographics":{"type":"array","items":{"$ref":"#/components/schemas/BioBaseBiographic"}}}}}},"Key":{"type":"object","properties":{"id":{"description":"Name of entity identifier.","type":"string"},"value":{"description":"Value of entity identifier.","type":"string"}}},"BioBaseBiographic":{"type":"object","properties":{"id":{"type":"string","description":"Biographic key."},"type":{"type":"string","description":"Biographic type. It can be TEXT or FACE.","enum":["TEXT","FACE"]},"value":{"type":"string","description":"Biographic value. Faces are encoded in Base64."}}}}}}
```

## updateBiographicsOnBiobaseUsingPGUIDAndTGUID

> This endpoint creates or updates biographics on the Biographic Base Server using BioBase configuration on API.\<br>\<br>\
> It uses any key provided to find a person/identity on the server. If it does, it updates it with all biographics provided, keeping the existing ones.\<br>\
> If it does not find any person/identity with the keys provided, it creates a person/identity on the server with the keys and biographics provided.\<br>\
> It calls all servers until one responds with a 2xx http code. If none respond successfully, it returns the last server response call code.\
> \
> \*\*Always send PGUID and TGUID as keys.\*\*<br>

```json
{"openapi":"3.0.1","info":{"title":"GBDS API","version":"4.7.0"},"servers":[{"url":"http://<ip>:8085/gbds/v2"}],"paths":{"/people/{pguid}/bio-base/{tguid}":{"post":{"description":"This endpoint creates or updates biographics on the Biographic Base Server using BioBase configuration on API.<br><br>\nIt uses any key provided to find a person/identity on the server. If it does, it updates it with all biographics provided, keeping the existing ones.<br>\nIf it does not find any person/identity with the keys provided, it creates a person/identity on the server with the keys and biographics provided.<br>\nIt calls all servers until one responds with a 2xx http code. If none respond successfully, it returns the last server response call code.\n\n**Always send PGUID and TGUID as keys.**\n","tags":["people"],"operationId":"updateBiographicsOnBiobaseUsingPGUIDAndTGUID","summary":"updateBiographicsOnBiobaseUsingPGUIDAndTGUID","parameters":[{"name":"pguid","description":"Global unique ID of the person.","in":"path","required":true,"schema":{"type":"string"}},{"name":"tguid","description":"Global unique ID of the transaction.","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBiographicsOnBiobaseRequest"}}},"required":true},"responses":{"201":{"description":"Identity created on Biobase Server"},"202":{"description":"Identity updated on Biobase Server"}}}}},"components":{"schemas":{"UpdateBiographicsOnBiobaseRequest":{"type":"object","properties":{"data":{"type":"object","properties":{"keys":{"type":"array","items":{"$ref":"#/components/schemas/Key"}},"biographics":{"type":"array","items":{"$ref":"#/components/schemas/BioBaseBiographic"}}}}}},"Key":{"type":"object","properties":{"id":{"description":"Name of entity identifier.","type":"string"},"value":{"description":"Value of entity identifier.","type":"string"}}},"BioBaseBiographic":{"type":"object","properties":{"id":{"type":"string","description":"Biographic key."},"type":{"type":"string","description":"Biographic type. It can be TEXT or FACE.","enum":["TEXT","FACE"]},"value":{"type":"string","description":"Biographic value. Faces are encoded in Base64."}}}}}}
```


---

# 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.griaule.com/apis/gbds-4/people.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.
