# Transaction

## getTransaction

> This method returns the data of a transaction, given its TGUID.

```json
{"openapi":"3.0.1","info":{"title":"GBDS API","version":"4.7.0"},"servers":[{"url":"http://<ip>:8085/gbds/v2"}],"paths":{"/people/transactions/{tguid}":{"get":{"description":"This method returns the data of a transaction, given its TGUID.","tags":["transaction"],"operationId":"getTransaction","summary":"getTransaction","parameters":[{"name":"tguid","description":"Global unique ID of the transaction.","in":"path","required":true,"schema":{"type":"string"}},{"name":"enrollFields","description":"List containing the names of the fields of the Enroll entity.","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["BASIC_FIELDS","EXCEPTIONS","QUALITY","PERSON","EXCEPTION_ISSUES","EXTERNAL_IDS","ALL_FIELDS","NO_FIELDS"]}}},{"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/GetEnrollTransactionsResponse"}}}},"400":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"404":{"description":"Transaction 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":{"GetEnrollTransactionsResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Enroll"}}},"Enroll":{"type":"object","properties":{"tguid":{"description":"Global unique ID of the transaction.","type":"string"},"pguid":{"description":"PGUID of the UL candidate.","type":"string"},"status":{"description":"Status of the enroll transaction.","type":"string","enum":["ENQUEUED","PROCESSING","ENROLLED","EXCEPTION","FAILED","PENDING","REFUSED","RESENT_ENROLL"]},"timestamp":{"description":"Timestamp of Enroll creation.","type":"integer","format":"int64"},"progress":{"description":"Progress of the Enroll operation.","type":"number","format":"float"},"candidates":{"description":"Identify candidates","type":"array","items":{"$ref":"#/components/schemas/Match"}},"exceptions":{"description":"Exception candidates (verify post match results)","type":"array","items":{"$ref":"#/components/schemas/Match"}},"person":{"$ref":"#/components/schemas/Person"},"qualityAnalysis":{"$ref":"#/components/schemas/QualityAnalysis"},"failReason":{"description":"Message describing why the enroll failed","type":"string"},"isCurrentTransaction":{"description":"Whether this is the current transaction for the person identified by PGUID.","type":"boolean"},"refusedReason":{"$ref":"#/components/schemas/EnrollRefusedReason"},"bonafideScore":{"description":"Bonafide score of the liveness verification. Only returned if the `liveness` flag was set to `true` in the payload of the enroll/update request. Ranges from 0 to 100 (0=attack, 100=genuine).","type":"integer","format":"int32"}}},"Match":{"type":"object","properties":{"matchedPersonPguid":{"description":"PGUID of the person the candidate was matched against.","type":"string"},"matchedPersonTguid":{"description":"TGUID of the person the candidate was matched against.","type":"string"},"biometricMatches":{"description":"Information about the match.","type":"array","items":{"$ref":"#/components/schemas/BiometricMatch"}}}},"BiometricMatch":{"type":"object","properties":{"score":{"description":"Score of the match.","type":"integer","format":"int32"},"queryIndex":{"description":"Index of the biometric data that was sent and caused a match.","type":"integer","format":"int32"},"referenceIndex":{"description":"Index of the biometric data, from the already enrolled person, which matched.","type":"integer","format":"int32"},"minutia":{"description":"Array of minutia matches. Returned only for latent searches.","type":"array","items":{"$ref":"#/components/schemas/Minutiae"}}}},"Minutiae":{"type":"object","properties":{"query":{"description":"Index of Minutiae, from the provided biometric data, which was involved in the match.","type":"integer","format":"int32"},"reference":{"description":"Index of Minutiae, from biometric data already in the database, which was involved in the match.","type":"integer","format":"int32"}}},"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"]},"QualityAnalysis":{"type":"object","properties":{"status":{"description":"Status of the analysis.","type":"string","enum":["PENDING","APPROVED","REJECTED","OK","ERROR","PENDING_DUPLICITIES"]},"user":{"description":"Username of whom issued the approval.","type":"string"},"comments":{"description":"User comments on the approval.","type":"string"},"timestamp":{"description":"Creation time of the approval, be it manual or automatic. If the enroll did not have any anomalies, the approval was automatic, thus this field will be equal to the enroll time. Otherwise, this timestamp will be the time when the user either approved or rejected the enrollment.","type":"integer","format":"int64"},"duplicationIssues":{"type":"array","items":{"$ref":"#/components/schemas/DuplicationIssue"}},"qualityIssues":{"type":"array","items":{"$ref":"#/components/schemas/QualityIssue"}},"sequenceControlIssues":{"type":"array","items":{"$ref":"#/components/schemas/SequenceControlIssue"}}}},"DuplicationIssue":{"type":"object","properties":{"indexes":{"description":"List of pairs of duplicated indexes found.","type":"array","items":{"type":"integer","format":"int32"}}}},"QualityIssue":{"type":"object","properties":{"index":{"description":"Index of the referred finger.","type":"integer","format":"int32"},"quality":{"description":"Quality calculated for the template.","type":"integer","format":"int32"}}},"SequenceControlIssue":{"type":"object","properties":{"index":{"description":"Index of the problematic finger.","type":"integer","format":"int32"},"matches":{"description":"List of sequence control indexes that matched the given finger and its matching score.","type":"array","items":{"type":"object","properties":{"index":{"type":"integer","format":"int32"},"score":{"type":"integer","format":"int32"}}}}}},"EnrollRefusedReason":{"type":"object","properties":{"matchedPeopleThatAreReferenceInSomeExceptionUnderAnalysis":{"description":"List of PGUID of the people that is the reference in some exception under analysis.","type":"array","items":{"type":"string"}},"matchedTransactionsThatHaveAnExceptionUnderAnalysis":{"description":"List of TGUID of entrant transactions with the exception under analysis.","type":"array","items":{"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"}}}}}}
```

## listTransactions

> This method returns a list of enrollment and updates transactions that match the search criteria.

```json
{"openapi":"3.0.1","info":{"title":"GBDS API","version":"4.7.0"},"servers":[{"url":"http://<ip>:8085/gbds/v2"}],"paths":{"/people/transactions":{"get":{"description":"This method returns a list of enrollment and updates transactions that match the search criteria.","tags":["transaction"],"operationId":"listTransactions","summary":"listTransactions","parameters":[{"name":"enrollStatus","description":"Select only enrolls with a specific status, e.g., ENROLLED.\n\nThis parameter can be a list. To do so, pass it multiple times with the desired values.\n\n**NOTE**: At least one of the parameters `enrollStatus` or `qualityStatus` is required.\n","in":"query","required":false,"schema":{"type":"string","enum":["ENQUEUED","PROCESSING","ENROLLED","EXCEPTION","FAILED","REFUSED","PENDING","RESENT_ENROLL"]}},{"name":"qualityStatus","description":"Filter with specific quality status.\n\nThis parameter can be a list. To do so, pass it multiple times with the desired values.\n\n**NOTE**: At least one of the parameters `enrollStatus` or `qualityStatus` is required.\n","in":"query","required":false,"schema":{"type":"string","enum":["PENDING","APPROVED","REJECTED","OK","ERROR","PENDING_DUPLICITIES"]}},{"name":"startDate","description":"Minimum timestamp, in milliseconds.","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"endDate","description":"Maximum timestamp, in milliseconds.","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"keys","description":"Array keys that uniquely identify the person. This field can be an expression.","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"biographics","description":"Biographic data of the person. This field can be an expression.","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"labels","description":"A list of labels that may be empty. This field can be an expression. For transactions with no labels, use \"labels=\".","in":"query","required":false,"schema":{"type":"string"}},{"name":"pageSize","description":"Size of the request.","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageIndex","description":"Defines which page will be returned.","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"enrollFields","description":"List containing the names of the fields of the Enroll entity.","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["BASIC_FIELDS","EXCEPTIONS","QUALITY","PERSON","EXCEPTION_ISSUES","EXTERNAL_IDS","ALL_FIELDS","NO_FIELDS"]}}},{"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":"manuallyReviewed","description":"List transactions for MIR with parameter manuallyReviewed. Transactions are now manually reviewed if they once have the status PENDING (caught by quality control) and they were approved or rejected.","in":"query","required":false,"schema":{"type":"boolean"}},{"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/ListEnrollTransactionsResponse"}}}},"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":{"ListEnrollTransactionsResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Enroll"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"meta":{"$ref":"#/components/schemas/ResponseMeta"}}},"Enroll":{"type":"object","properties":{"tguid":{"description":"Global unique ID of the transaction.","type":"string"},"pguid":{"description":"PGUID of the UL candidate.","type":"string"},"status":{"description":"Status of the enroll transaction.","type":"string","enum":["ENQUEUED","PROCESSING","ENROLLED","EXCEPTION","FAILED","PENDING","REFUSED","RESENT_ENROLL"]},"timestamp":{"description":"Timestamp of Enroll creation.","type":"integer","format":"int64"},"progress":{"description":"Progress of the Enroll operation.","type":"number","format":"float"},"candidates":{"description":"Identify candidates","type":"array","items":{"$ref":"#/components/schemas/Match"}},"exceptions":{"description":"Exception candidates (verify post match results)","type":"array","items":{"$ref":"#/components/schemas/Match"}},"person":{"$ref":"#/components/schemas/Person"},"qualityAnalysis":{"$ref":"#/components/schemas/QualityAnalysis"},"failReason":{"description":"Message describing why the enroll failed","type":"string"},"isCurrentTransaction":{"description":"Whether this is the current transaction for the person identified by PGUID.","type":"boolean"},"refusedReason":{"$ref":"#/components/schemas/EnrollRefusedReason"},"bonafideScore":{"description":"Bonafide score of the liveness verification. Only returned if the `liveness` flag was set to `true` in the payload of the enroll/update request. Ranges from 0 to 100 (0=attack, 100=genuine).","type":"integer","format":"int32"}}},"Match":{"type":"object","properties":{"matchedPersonPguid":{"description":"PGUID of the person the candidate was matched against.","type":"string"},"matchedPersonTguid":{"description":"TGUID of the person the candidate was matched against.","type":"string"},"biometricMatches":{"description":"Information about the match.","type":"array","items":{"$ref":"#/components/schemas/BiometricMatch"}}}},"BiometricMatch":{"type":"object","properties":{"score":{"description":"Score of the match.","type":"integer","format":"int32"},"queryIndex":{"description":"Index of the biometric data that was sent and caused a match.","type":"integer","format":"int32"},"referenceIndex":{"description":"Index of the biometric data, from the already enrolled person, which matched.","type":"integer","format":"int32"},"minutia":{"description":"Array of minutia matches. Returned only for latent searches.","type":"array","items":{"$ref":"#/components/schemas/Minutiae"}}}},"Minutiae":{"type":"object","properties":{"query":{"description":"Index of Minutiae, from the provided biometric data, which was involved in the match.","type":"integer","format":"int32"},"reference":{"description":"Index of Minutiae, from biometric data already in the database, which was involved in the match.","type":"integer","format":"int32"}}},"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"]},"QualityAnalysis":{"type":"object","properties":{"status":{"description":"Status of the analysis.","type":"string","enum":["PENDING","APPROVED","REJECTED","OK","ERROR","PENDING_DUPLICITIES"]},"user":{"description":"Username of whom issued the approval.","type":"string"},"comments":{"description":"User comments on the approval.","type":"string"},"timestamp":{"description":"Creation time of the approval, be it manual or automatic. If the enroll did not have any anomalies, the approval was automatic, thus this field will be equal to the enroll time. Otherwise, this timestamp will be the time when the user either approved or rejected the enrollment.","type":"integer","format":"int64"},"duplicationIssues":{"type":"array","items":{"$ref":"#/components/schemas/DuplicationIssue"}},"qualityIssues":{"type":"array","items":{"$ref":"#/components/schemas/QualityIssue"}},"sequenceControlIssues":{"type":"array","items":{"$ref":"#/components/schemas/SequenceControlIssue"}}}},"DuplicationIssue":{"type":"object","properties":{"indexes":{"description":"List of pairs of duplicated indexes found.","type":"array","items":{"type":"integer","format":"int32"}}}},"QualityIssue":{"type":"object","properties":{"index":{"description":"Index of the referred finger.","type":"integer","format":"int32"},"quality":{"description":"Quality calculated for the template.","type":"integer","format":"int32"}}},"SequenceControlIssue":{"type":"object","properties":{"index":{"description":"Index of the problematic finger.","type":"integer","format":"int32"},"matches":{"description":"List of sequence control indexes that matched the given finger and its matching score.","type":"array","items":{"type":"object","properties":{"index":{"type":"integer","format":"int32"},"score":{"type":"integer","format":"int32"}}}}}},"EnrollRefusedReason":{"type":"object","properties":{"matchedPeopleThatAreReferenceInSomeExceptionUnderAnalysis":{"description":"List of PGUID of the people that is the reference in some exception under analysis.","type":"array","items":{"type":"string"}},"matchedTransactionsThatHaveAnExceptionUnderAnalysis":{"description":"List of TGUID of entrant transactions with the exception under analysis.","type":"array","items":{"type":"string"}}}},"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"}}},"ResponseMeta":{"type":"object","properties":{"tguidsWithError":{"description":"Array containing TGUID for transactions, of the requested page, which had errors during retrieval and thus are NOT present in the returned page.","type":"array","items":{"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"}}},"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"}}}}}}
```

## linkEnroll

> This method links an approved transaction to its refused transaction tguid.

```json
{"openapi":"3.0.1","info":{"title":"GBDS API","version":"4.7.0"},"servers":[{"url":"http://<ip>:8085/gbds/v2"}],"paths":{"/people/transactions/linkResentEnroll/{tguid}/newTguid/{newTguid}":{"put":{"description":"This method links an approved transaction to its refused transaction tguid.","tags":["transaction"],"operationId":"linkEnroll","summary":"linkEnroll","parameters":[{"name":"tguid","description":"Refused Transaction Tguid.","in":"path","required":true,"schema":{"type":"string"}},{"name":"newTguid","description":"Approved transaction Tguid.","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"object"}}}},"400":{"description":"Bad Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"422":{"description":"Missing TGUID or Invalid Transaction Status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessingError"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalError"}}}}}}}},"components":{"schemas":{"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"}}}}}}
```

## transactionReport

> Returns information about transactions that match the search criteria. The transactions will be grouped by operation and API instance (optional).

```json
{"openapi":"3.0.1","info":{"title":"GBDS API","version":"4.7.0"},"servers":[{"url":"http://<ip>:8085/gbds/v2"}],"paths":{"/people/transactions/report":{"get":{"description":"Returns information about transactions that match the search criteria. The transactions will be grouped by operation and API instance (optional).","tags":["transaction"],"operationId":"transactionReport","summary":"transactionReport","parameters":[{"name":"start","description":"Start date to filter the transactions. Format \"yyyy-MM-dd HH:mm:ss\". If absent, API considers one month from the request timestamp.","in":"query","required":false,"schema":{"type":"string"}},{"name":"end","description":"End date to filter the transactions. Format \"yyyy-MM-dd HH:mm:ss\". If absent, API considers the request timestamp.","in":"query","required":false,"schema":{"type":"string"}},{"name":"byApiId","description":"Flag to group results by API ID or not.","in":"query","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionReportResponse"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalError"}}}}}}}},"components":{"schemas":{"TransactionReportResponse":{"type":"object","properties":{"data":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ReportGroupedByAPIEnroll"},{"$ref":"#/components/schemas/ReportGroupedByAPISearch"},{"$ref":"#/components/schemas/ReportNotGroupedByAPIEnroll"},{"$ref":"#/components/schemas/ReportNotGroupedByAPISearch"}]}}}},"ReportGroupedByAPIEnroll":{"type":"object","properties":{"count":{"description":"Sum of transactions of this type in during the specified period.","type":"integer","format":"int32"},"extractionTimeAvg":{"description":"Average time for template extraction.","type":"number","format":"double"},"extractionTimeMin":{"description":"Minimum time for template extraction.","type":"integer","format":"int32"},"extractionTimeMax":{"description":"Maximum time for template extraction.","type":"integer","format":"int32"},"extractionQualityAvg":{"description":"Average time for quality extraction.","type":"number","format":"double"},"extractionQualityMin":{"description":"Minimum time for quality extraction.","type":"integer","format":"int32"},"extractionQualityMax":{"description":"Maximum time for template extraction.","type":"integer","format":"int32"},"matchAvg":{"description":"Average time for biometric comparison.","type":"number","format":"double"},"matchMin":{"description":"Minimum time for biometric comparison.","type":"integer","format":"int32"},"matchMax":{"description":"Maximum time for biometric comparison.","type":"integer","format":"int32"},"totalAvg":{"description":"Average time to complete a transaction.","type":"number","format":"double"},"totalMin":{"description":"Minimum time to complete a transaction.","type":"integer","format":"int32"},"totalMax":{"description":"Maximum time to complete a transaction.","type":"integer","format":"int32"},"type":{"description":"Transaction type.","type":"string","enum":["ENROLL","UPDATE"]},"apiId":{"description":"API ID to group transactions.","type":"string"}}},"ReportGroupedByAPISearch":{"type":"object","properties":{"count":{"description":"Sum of transactions of this type in during the specified period.","type":"integer","format":"int32"},"extractionTimeAvg":{"description":"Average time for template extraction.","type":"number","format":"double"},"extractionTimeMin":{"description":"Minimum time for template extraction.","type":"integer","format":"int32"},"extractionTimeMax":{"description":"Maximum time for template extraction.","type":"integer","format":"int32"},"extractionQualityAvg":{"description":"Average time for quality extraction.","type":"number","format":"double"},"extractionQualityMin":{"description":"Minimum time for quality extraction.","type":"integer","format":"int32"},"extractionQualityMax":{"description":"Maximum time for template extraction.","type":"integer","format":"int32"},"matchAvg":{"description":"Average time for biometric comparison.","type":"number","format":"double"},"matchMin":{"description":"Minimum time for biometric comparison.","type":"integer","format":"int32"},"matchMax":{"description":"Maximum time for biometric comparison.","type":"integer","format":"int32"},"totalAvg":{"description":"Average time to complete a transaction.","type":"number","format":"double"},"totalMin":{"description":"Minimum time to complete a transaction.","type":"integer","format":"int32"},"totalMax":{"description":"Maximum time to complete a transaction.","type":"integer","format":"int32"},"type":{"description":"Transaction type.","type":"string","enum":["VERIFY","IDENTIFY"]},"latent":{"description":"Whether the transactions are latent searches or not.","type":"boolean"},"ul":{"description":"Whether the transactions are UL searches or not.","type":"boolean"},"apiId":{"description":"API ID to group transactions.","type":"string"}}},"ReportNotGroupedByAPIEnroll":{"type":"object","properties":{"count":{"description":"Sum of transactions of this type in during the specified period.","type":"integer","format":"int32"},"extractionTimeAvg":{"description":"Average time for template extraction.","type":"number","format":"double"},"extractionTimeMin":{"description":"Minimum time for template extraction.","type":"integer","format":"int32"},"extractionTimeMax":{"description":"Maximum time for template extraction.","type":"integer","format":"int32"},"extractionQualityAvg":{"description":"Average time for quality extraction.","type":"number","format":"double"},"extractionQualityMin":{"description":"Minimum time for quality extraction.","type":"integer","format":"int32"},"extractionQualityMax":{"description":"Maximum time for template extraction.","type":"integer","format":"int32"},"matchAvg":{"description":"Average time for biometric comparison.","type":"number","format":"double"},"matchMin":{"description":"Minimum time for biometric comparison.","type":"integer","format":"int32"},"matchMax":{"description":"Maximum time for biometric comparison.","type":"integer","format":"int32"},"totalAvg":{"description":"Average time to complete a transaction.","type":"number","format":"double"},"totalMin":{"description":"Minimum time to complete a transaction.","type":"integer","format":"int32"},"totalMax":{"description":"Maximum time to complete a transaction.","type":"integer","format":"int32"},"type":{"description":"Transaction type.","type":"string","enum":["ENROLL","UPDATE"]}}},"ReportNotGroupedByAPISearch":{"type":"object","properties":{"count":{"description":"Sum of transactions of this type in during the specified period.","type":"integer","format":"int32"},"extractionTimeAvg":{"description":"Average time for template extraction.","type":"number","format":"double"},"extractionTimeMin":{"description":"Minimum time for template extraction.","type":"integer","format":"int32"},"extractionTimeMax":{"description":"Maximum time for template extraction.","type":"integer","format":"int32"},"extractionQualityAvg":{"description":"Average time for quality extraction.","type":"number","format":"double"},"extractionQualityMin":{"description":"Minimum time for quality extraction.","type":"integer","format":"int32"},"extractionQualityMax":{"description":"Maximum time for template extraction.","type":"integer","format":"int32"},"matchAvg":{"description":"Average time for biometric comparison.","type":"number","format":"double"},"matchMin":{"description":"Minimum time for biometric comparison.","type":"integer","format":"int32"},"matchMax":{"description":"Maximum time for biometric comparison.","type":"integer","format":"int32"},"totalAvg":{"description":"Average time to complete a transaction.","type":"number","format":"double"},"totalMin":{"description":"Minimum time to complete a transaction.","type":"integer","format":"int32"},"totalMax":{"description":"Maximum time to complete a transaction.","type":"integer","format":"int32"},"type":{"description":"Transaction type.","type":"string","enum":["VERIFY","IDENTIFY"]},"latent":{"description":"Whether the transactions are latent searches or not.","type":"boolean"},"ul":{"description":"Whether the transactions are UL searches or not.","type":"boolean"}}},"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"}}}}}}
```


---

# 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/transaction.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.
