Pular para o conteúdo principal
A API de Detecção de Fraude usa IA forense para detectar documentos e imagens manipulados, alterados e gerados por IA em tempo real.

Modelos disponíveis

ModeloCaso de usoTipos de arquivo compatíveis
documentDetecta documentos e IDs gerados por IA ou alterados (extratos bancários, faturas, passaportes, carteiras de motorista)jpg, jpeg, png, webp, pdf
objectDetecta imagens geradas por IA ou manipuladas (fotos, evidências de sinistro, comprovantes)jpg, jpeg, png, webp
Recupere programaticamente a lista completa de modelos:
curl https://api.deepxl.ai/v1/detection-models \
  -H "x-api-key: YOUR_API_KEY"

Analisando um arquivo

Envie um arquivo para detecção de fraude via POST /v1/detection:
curl -X POST https://api.deepxl.ai/v1/detection \
  -H "x-api-key: YOUR_API_KEY" \
  -F "model=document" \
  -F "file=@invoice.pdf" \
  -F 'tags={"customerId":"9999","documentId":"INV-001"}'

Parâmetros

ParâmetroTipoObrigatórioDescrição
modelstringSimdocument ou object
filefileSimO arquivo a ser analisado (máx. 50 MB)
tagsstringNãoObjeto JSON com pares chave-valor de metadados
O tamanho máximo do arquivo é 50 MB. Arquivos que excederem esse limite serão rejeitados com um erro 413.

Estrutura de resposta

Uma resposta de detecção contém os seguintes campos:
{
  "result": {
    "detectionId": 42,
    "mediaType": "document",
    "fileType": "pdf",
    "fileName": "bank_statement.pdf",
    "fileSize": 245678,
    "timestamp": 1725795600,
    "timestampISO": "2024-09-08T10:00:00.000000",
    "model": "document",
    "modelVersion": "1.1.0",
    "likelihood": 85.2,
    "fraudSeverity": "high",
    "classification": "verified",
    "reasoning": [
      "Potential manipulation detected in text region",
      "Font inconsistencies found"
    ],
    "modelResults": {
      "technicalChecks": [
        {
          "type": "DOCUMENT_CLASSIFIER",
          "status": "PASS",
          "details": "Classified as bank statement",
          "likelihood": 0.02
        },
        {
          "type": "SEMANTIC_FRAUD",
          "status": "FAIL",
          "details": "Detected inconsistencies in text formatting",
          "likelihood": 0.85
        }
      ]
    },
    "tags": [
      { "name": "customerId", "value": "9999" },
      { "name": "documentId", "value": "INV-001" }
    ],
    "files": [
      {
        "category": "original_file",
        "fileName": "fd_42_bank_statement.pdf",
        "fileSize": 245678,
        "contentType": "application/pdf",
        "timestamp": 1725795600,
        "timestampISO": "2024-09-08T10:00:00.000000",
        "url": "https://api.deepxl.ai/v1/files/fd_42_bank_statement.pdf"
      },
      {
        "category": "heatmap",
        "fileName": "fd_42_heatmap_1.png",
        "fileSize": 45678,
        "contentType": "image/png",
        "timestamp": 1725795600,
        "timestampISO": "2024-09-08T10:00:00.000000",
        "url": "https://api.deepxl.ai/v1/files/fd_42_heatmap_1.png"
      }
    ]
  }
}

Referência de campos

CampoTipoDescrição
detectionIdintegerIdentificador exclusivo do registro de detecção
mediaTypestringCategoria do tipo de mídia (image ou document)
fileTypestringExtensão do arquivo (jpeg, png, pdf, webp)
fileNamestringNome original do arquivo enviado
fileSizeintegerTamanho do arquivo em bytes
timestampintegerTimestamp Unix da análise
timestampISOstringTimestamp ISO 8601 da análise
modelstringModelo usado (document ou object)
modelVersionstringVersão do modelo usada para a análise
likelihoodfloatProbabilidade de fraude em porcentagem (0–100)
fraudSeveritystringNível de severidade: low, medium ou high
classificationstringAvaliação de qualidade: verified, unverified ou rejected
reasoningstring[]Explicações em linguagem natural dos achados da análise
modelResultsobjectContém o array technicalChecks com resultados detalhados das verificações
tagsobject[]Tags de metadados anexadas a esta detecção
filesobject[]Arquivos associados (upload original, heatmaps)

Entendendo os resultados

Pontuação de probabilidade

O campo likelihood é uma pontuação de 0–100% que indica a probabilidade de fraude ou manipulação:
FaixaSeveridadeInterpretação
0–29%lowNenhum indicador significativo de manipulação
30–69%mediumAlguns indicadores de manipulação detectados
70–100%highFortes indicadores de fraude detectados

Classificação

O campo classification indica a avaliação de qualidade do documento — se o documento passou por todas as etapas de qualidade e pôde ser analisado corretamente. Isso é separado do resultado de fraude (likelihood / fraudSeverity).
ClassificaçãoSignificado
verifiedA qualidade do documento é boa — passou por todas as etapas de qualidade e foi totalmente analisado
unverifiedA qualidade do documento é insuficiente — a imagem está borrada, os cantos foram cortados ou verificações semânticas de qualidade falharam
rejectedO tipo de documento não é compatível, o conteúdo de texto é insuficiente ou vários documentos foram enviados em um único arquivo

Fundamentação

O array reasoning contém explicações em linguagem natural dos achados da análise. Cada entrada descreve uma observação ou conclusão específica da análise forense.

Verificações técnicas

O array modelResults.technicalChecks contém as verificações forenses individuais realizadas no arquivo. O número e o tipo de verificações variam dependendo do modelo, do tipo de arquivo e do conteúdo do documento. Cada objeto de verificação inclui:
CampoTipoDescrição
typestringIdentificador da verificação
statusstringPASS, FAIL, WARNING ou NOT_PRESENT
detailsstringExplicação legível para humanos do resultado da verificação
likelihoodfloatPontuação de confiança para esta verificação específica (0.0–1.0)

Valores de status

StatusSignificado
PASSVerificação aprovada — nenhum problema encontrado
FAILVerificação reprovada — problema detectado
WARNINGPossível preocupação — não é conclusivo, mas vale observar
NOT_PRESENTA verificação não pôde ser realizada — os dados necessários não estavam disponíveis no arquivo

Modelo de documento

O modelo document executa um pipeline de múltiplas etapas. Primeiro, uma série de etapas de qualidade determina o classification (se o documento pode ser analisado corretamente). Em seguida, verificações paralelas de fraude analisam o documento em busca de manipulação e determinam a pontuação likelihood. Verificações adicionais podem ser executadas dependendo do tipo de arquivo e da categoria do documento.

Modelo de objetos

O modelo object retorna resultados de detecção de fraude por meio dos campos de nível superior likelihood, fraudSeverity e reasoning. O array technicalChecks ficará vazio para o modelo de objetos. Quando geração por IA ou manipulação é detectada, um heatmap é incluído no array files destacando as regiões suspeitas.

Heatmaps

Tanto os modelos document quanto object podem gerar imagens de heatmap que destacam visualmente as regiões afetadas. Heatmaps facilitam ver exatamente onde adulteração ou geração por IA foi detectada.

Como os heatmaps funcionam

  • Heatmaps são imagens PNG sobrepostas ao documento ou imagem original
  • Modelo de documento: para PDFs com múltiplas páginas, cada página recebe seu próprio heatmap (fd_{id}_heatmap_1.png, fd_{id}_heatmap_2.png etc.)
  • Modelo de objetos: um único heatmap é gerado por imagem (fd_{id}_heatmap_1.png)
  • Heatmaps só são gerados quando manipulação ou geração por IA é detectada
  • Eles aparecem no array files com category: "heatmap"

Recuperando heatmaps

URLs de heatmap são incluídas na resposta de detecção em files:
{
  "files": [
    {
      "category": "original_file",
      "fileName": "fd_42_bank_statement.pdf",
      "url": "https://api.deepxl.ai/v1/files/fd_42_bank_statement.pdf"
    },
    {
      "category": "heatmap",
      "fileName": "fd_42_heatmap_1.png",
      "url": "https://api.deepxl.ai/v1/files/fd_42_heatmap_1.png"
    },
    {
      "category": "heatmap",
      "fileName": "fd_42_heatmap_2.png",
      "url": "https://api.deepxl.ai/v1/files/fd_42_heatmap_2.png"
    }
  ]
}
Baixe um heatmap usando o endpoint de recuperação de arquivos:
curl https://api.deepxl.ai/v1/files/fd_42_heatmap_1.png \
  -H "x-api-key: YOUR_API_KEY" \
  --output heatmap_page1.png

Categorias de arquivo

CategoriaDescrição
original_fileO arquivo que você enviou originalmente
heatmapHeatmap gerado destacando regiões de manipulação detectadas

Códigos de erro

StatusErroDescrição
400Solicitação inválidaNome de modelo inválido, parâmetro de ordenação inválido, JSON malformado em tags ou parâmetros de consulta inválidos
401Não autorizadoChave de API / token Bearer ausente ou inválido
404Não encontradoRegistro de detecção não encontrado
413Payload muito grandeO arquivo excede o tamanho máximo de 50 MB
415Tipo de mídia não suportadoO tipo de arquivo não é compatível com o modelo selecionado
500Erro interno do servidorErro inesperado do servidor — contate o suporte se persistir
502Gateway inválidoO serviço upstream de análise está temporariamente indisponível — tente novamente após um curto intervalo

Tags e filtragem

Passe um objeto JSON no parâmetro tags para anexar metadados à sua análise:
{
  "customerId": "9999",
  "customerName": "Acme Corp",
  "documentId": "DOC-2024-001"
}
Filtre seu histórico de detecções por tags:
curl "https://api.deepxl.ai/v1/detection?tagFilter=customerId=9999" \
  -H "x-api-key: YOUR_API_KEY"
Recupere resultados de detecção paginados com ordenação e filtragem:
curl "https://api.deepxl.ai/v1/detection?limit=25&offset=0&sortBy=createdOn&direction=desc" \
  -H "x-api-key: YOUR_API_KEY"

Parâmetros de consulta

ParâmetroTipoDescrição
limitintegerNúmero de resultados por página (padrão: 25)
offsetintegerNúmero de resultados a pular
sortBystringCampo para ordenar (veja as opções abaixo)
directionstringasc ou desc
minLikelihoodfloatFiltro de probabilidade mínima (0–100)
maxLikelihoodfloatFiltro de probabilidade máxima (0–100)
fraudSeveritystringFiltrar por severidade: low, medium ou high
classificationstringFiltrar por classificação: verified, unverified ou rejected
tagFilterstringFiltrar por tag (formato: key=value)
minTimestampintegerTimestamp Unix mínimo
maxTimestampintegerTimestamp Unix máximo

Opções de ordenação

fraudDetectionId, fileName, fileSize, fileType, model, likelihood, createdOn