Coletando os Retornos
Atenção
A Promise de startOcr resolve com uma string JSON, tanto no Android quanto no iOS. É necessário chamar JSON.parse() antes de acessar os campos. O tipo declarado no TypeScript é OCR_RETURN_VALUES | string.
Estrutura do retorno
type OCR_RETURN_VALUES = {
DocumentRecognitionResponse: {
ocr_key?: string;
ocr_front_key?: string;
ocr_back_key?: string;
document_type: string;
}[];
};
| Atributo | Tipo | Descrição |
|---|---|---|
| ocr_key | string | Chave de identificação da imagem, presente em documentos de captura única (cnh_full, cnh_digital, proof_of_address, rg_cin_digital). Pode ser utilizada em qualquer outro serviço do sistema QI Tech. |
| ocr_front_key | string | Chave de identificação da imagem da frente, presente em documentos de captura dupla (cnh, rg, rne, crnm). |
| ocr_back_key | string | Chave de identificação da imagem do verso, presente em documentos de captura dupla (cnh, rg, rne, crnm). |
| document_type | string | Identifica a qual documento aquela chave se refere (ex.: "cnh", "rg", "proof_of_address"). |
Importante
Armazene as chaves retornadas — elas são o identificador da imagem nos demais produtos do sistema QI Tech, como a API de Onboarding.
Documento de captura única
{
"DocumentRecognitionResponse": [
{ "ocr_key": "5d0f0e1c-8f9e-4b6c-9c3d-2f8a1b4e7c10", "document_type": "cnh_full" }
]
}
Documento de captura dupla
{
"DocumentRecognitionResponse": [
{ "ocr_front_key": "5d0f0e1c-8f9e-4b6c-9c3d-2f8a1b4e7c10", "document_type": "cnh" },
{ "ocr_back_key": "a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d", "document_type": "cnh" }
]
}
Exemplo de leitura do retorno
startOcr(CAAS_ENVIRONMENT.SANDBOX, mobileToken, CAAS_DOCUMENT_TYPE.CNH)
.then((response) => {
const { DocumentRecognitionResponse } = JSON.parse(response as string);
if (DocumentRecognitionResponse.length === 1) {
const { ocr_key, document_type } = DocumentRecognitionResponse[0];
console.log('Ocr key: ' + ocr_key + ' document type: ' + document_type);
} else if (DocumentRecognitionResponse.length === 2) {
const { ocr_front_key } = DocumentRecognitionResponse[0];
const { ocr_back_key } = DocumentRecognitionResponse[1];
console.log('Ocr front key: ' + ocr_front_key + ' / Ocr back key: ' + ocr_back_key);
}
})
.catch((error) => {
console.log('Error executing Ocr. Error: ' + error);
});
Tratamento de erros
A Promise é rejeitada quando o usuário interrompe o fluxo ou quando o SDK nativo encontra um erro.
| Situação | Mensagem |
|---|---|
| Usuário cancelou o fluxo | User canceled OCR |
| Erro no SDK nativo de iOS | Error executing OCR: <detalhe> |
| Módulo nativo não vinculado | The package 'react-native-qi-tech-module' doesn't seem to be linked... |
Atenção
Se você receber o erro de linking, verifique se executou pod install no iOS, se reconstruiu o aplicativo após a instalação do pacote e se não está no Expo managed workflow sem prebuild.