Trustfull Document

Trustfull Document

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Gets the result of a Trustfull Document check that you started with the POST call, by request ID.

To use this API, you must first initiate a request to the Document API.
This initial call uploads the file and starts the analysis pipeline.

Once the pipeline is running, you can use this API to retrieve the results. If the analysis is not yet complete, the endpoint will return a response with a status of processing:

{
  "status": "processing",
  "message": "The request is still being processed"
}

When the analysis is complete, the API returns the document signals.

Response

Following an example of the response:

{
    "resolution_id": "...",
    "customer_id": "...",
    "model_id": "...",
    "device_request_time": "...",
    "claims": [
        "document"
    ],
    "value": "https://assets.trustfull.com/documents/{resolution_id}/{uuid}.pdf",
    "file_type": "PDF",
    "document_type": "payslip",
    "image_quality": "high",
    "modality": "pdf_native",
    "extractable_chars": 1842,
    "image_area": 6.73,
    "vector_drawings": 27,
    "raster_images": 3,
    "image_info_mode": "RGB",
    "image_info_width": 2480,
    "image_info_height": 3508,
    "image_info_dpi_x": 300,
    "image_info_dpi_y": 300,
    "image_info_page_no": 0,
    "image_info_is_from_rendered_pdf": true,
    "image_info_jpeg_qtable_count": 2,
    "image_metrics_sharpness": 4221.83,
    "image_metrics_contrast": 48.71,
    "ocr_readability_confidence": 78,
    "ocr_readability_words_count": 412,
    "content_skew_angle": 0.18,
    "analysis_status": "ok",
    "score": 500,
    "score_cluster": "review",
    "score_model_used": "document_score",
    "reason_codes": "TDOC001",
    "risks_number": 0,
    "trusts_number": 1,
    "metadata_software": "iTextSharp 5.5.13.2",
    "metadata_creator": "iTextSharpLite v5.3",
    "metadata_author": "Payroll System",
    "metadata_title": "Payslip",
    "metadata_creation_date": "2026-01-01 11:00:00",
    "metadata_creation_date_timezone": "+01:00",
    "metadata_mod_date": "2026-01-01 11:00:00",
    "metadata_mod_date_timezone": "+01:00",
    "metadata_pdf_version": "1.4",
    "metadata_page_count": 1,
    "metadata_is_encrypted": false,
    "metadata_is_xmp_present": false,
    "metadata_image_make": "Canon",
    "metadata_image_model": "CanoScan LiDE 400",
    "metadata_is_present": true,
    "metadata_author_is_absent": true,
    "metadata_software_is_trusted": true,
    "metadata_software_trust_source": "curated_list",
    "metadata_is_create_before_edit": true,
    "metadata_date_is_in_past": true,
    "metadata_is_edit_close_to_create": true,
    "metadata_timezone_is_consistent": true,
    "xray_payslip_holder_first_name": "ANTONIO",
    "xray_payslip_holder_last_name": "SAVIANO",
    "xray_payslip_month": 6,
    "xray_payslip_year": 2025,
    "xray_payslip_net": 1531.4,
    "xray_payslip_gross": 3100.3,
    "xray_payslip_iban": "IT90J0760103400001054051964",
    "ocr_payslip_holder_first_name": "ANTONIO",
    "ocr_payslip_holder_last_name": "SAVIANO",
    "ocr_payslip_month": 6,
    "ocr_payslip_year": 2025,
    "ocr_payslip_net": 1531.4,
    "ocr_payslip_gross": 3100.3,
    "ocr_payslip_iban": "IT90J0760103400001054051964",
    "ocr_payslip_holder_first_name_details": "{\"verbatim\":\"ANTONIO\",\"bbox\":{\"x\":0.12,\"y\":0.20,\"width\":0.18,\"height\":0.03}}",
    "ocr_payslip_holder_last_name_details": "{\"verbatim\":\"SAVIANO\",\"bbox\":{\"x\":0.32,\"y\":0.20,\"width\":0.20,\"height\":0.03}}",
    "ocr_payslip_month_details": "{\"verbatim\":\"GIUGNO\",\"bbox\":{\"x\":0.12,\"y\":0.28,\"width\":0.10,\"height\":0.03}}",
    "ocr_payslip_year_details": "{\"verbatim\":\"2025\",\"bbox\":{\"x\":0.24,\"y\":0.28,\"width\":0.06,\"height\":0.03}}",
    "ocr_payslip_net_details": "{\"verbatim\":\"1.531,40\",\"bbox\":{\"x\":0.60,\"y\":0.70,\"width\":0.12,\"height\":0.03}}",
    "ocr_payslip_gross_details": "{\"verbatim\":\"3.100,30\",\"bbox\":{\"x\":0.60,\"y\":0.66,\"width\":0.12,\"height\":0.03}}",
    "ocr_payslip_iban_details": "{\"verbatim\":\"IT90J0760103400001054051964\",\"bbox\":{\"x\":0.12,\"y\":0.80,\"width\":0.40,\"height\":0.03}}",
    "ocr_payslip_match_first_name": true,
    "ocr_payslip_match_last_name": true,
    "ocr_payslip_match_month": true,
    "ocr_payslip_match_year": true,
    "ocr_payslip_match_net": true,
    "ocr_payslip_match_gross": true,
    "ocr_payslip_match_iban": true,
    "ocr_payslip_match_all": true,
    "ocr_payslip_is_complete": true,
    "ocr_bank_statement_holder_first_name": "LUCIA",
    "ocr_bank_statement_holder_last_name": "GERVASI",
    "ocr_bank_statement_iban": "IT11E0200883120000300310092",
    "ocr_bank_statement_bank_name": "UNICREDIT",
    "ocr_bank_statement_period_start": "2026-01-01",
    "ocr_bank_statement_period_end": "2026-03-31",
    "ocr_bank_statement_opening_balance": 1818.27,
    "ocr_bank_statement_closing_balance": 1686.18,
    "ocr_bank_statement_holder_first_name_details": "{\"verbatim\":\"LUCIA\",\"bbox\":{\"x\":0.58,\"y\":0.21,\"width\":0.05,\"height\":0.01}}",
    "ocr_bank_statement_holder_last_name_details": "{\"verbatim\":\"GERVASI\",\"bbox\":{\"x\":0.51,\"y\":0.21,\"width\":0.07,\"height\":0.01}}",
    "ocr_bank_statement_iban_details": "{\"verbatim\":\"IT11 E02008 83120 000300310092\",\"bbox\":{\"x\":0.07,\"y\":0.15,\"width\":0.32,\"height\":0.01}}",
    "ocr_bank_statement_bank_name_details": "{\"verbatim\":\"UNICREDIT\",\"bbox\":{\"x\":0.21,\"y\":0.68,\"width\":0.40,\"height\":0.02}}",
    "ocr_bank_statement_period_start_details": "{\"verbatim\":\"01.01.2026\",\"bbox\":{\"x\":0.07,\"y\":0.39,\"width\":0.08,\"height\":0.01}}",
    "ocr_bank_statement_period_end_details": "{\"verbatim\":\"31.03.2026\",\"bbox\":{\"x\":0.71,\"y\":0.04,\"width\":0.14,\"height\":0.02}}",
    "ocr_bank_statement_opening_balance_details": "{\"verbatim\":\"1.818,27\",\"bbox\":{\"x\":0.11,\"y\":0.52,\"width\":0.05,\"height\":0.01}}",
    "ocr_bank_statement_closing_balance_details": "{\"verbatim\":\"1.686,18\",\"bbox\":{\"x\":0.73,\"y\":0.52,\"width\":0.05,\"height\":0.01}}",
    "ocr_bank_statement_is_complete": true,
    "iban_is_valid": true,
    "iban_country": "IT",
    "iban_bank_code": "02008",
    "iban_branch_code": "83120",
    "iban_bic": "UNCRITMM",
    "iban_bank_name": "UniCredit S.p.A.",
    "bank_statement_iban_is_consistent": true,
    "ocr_bank_statement_bank_tax_id": "00348170101",
    "iban_bank_tax_id": "[\"00348170101\"]",
    "bank_statement_bank_tax_id_is_consistent": true,
    "overlapped_text": true,
    "overlapped_text_count": 1,
    "overlapped_text_details": "[{\"texts\":[\"2.628,30\",\"2.928,34\"],\"page\":1,\"bbox\":{\"x\":0.9072,\"y\":0.7579,\"width\":0.0523,\"height\":0.0117}}]",
    "mixed_font_token_count": 1,
    "mixed_font_token_details": "[{\"text\":\"14.269,37\",\"fonts\":[\"Cambria,Bold\",\"Courier New,Bold\"],\"page\":2,\"bbox\":{\"x\":0.4435,\"y\":0.575,\"width\":0.0762,\"height\":0.011}}]",
    "mixed_fonts_is_absent": false,
    "overprint_count": 1,
    "overprint_details": "[{\"page\":1,\"bbox\":{\"x\":0.03,\"y\":0.94,\"width\":0.94,\"height\":0.02}}]",
    "overprint_is_absent": false,
    "pdf_incremental_update": false,
    "pdf_incremental_update_count": 0,
    "tone_step_score": 0,
    "grid_misalignment_score": 0,
    "grid_misalignment_region": "{\"page\":1,\"bbox\":{\"x\":0.4478,\"y\":0.0904,\"width\":0.215,\"height\":0.1175}}",
    "print_style_deviation_score": 0,
    "print_style_deviation_region": "{\"page\":1,\"bbox\":{\"x\":0.5355,\"y\":0.1653,\"width\":0.1355,\"height\":0.0473}}",
    "is_physically_intact": true,
    "known_format": "it_noipa_payslip",
    "known_format_is_present": true,
    "known_format_is_consistent": true,
    "embedded_fonts": "[\"ArialBoldMT\",\"ArialMT\"]",
    "non_embedded_fonts": "[\"TimesNewRomanPSMT\"]",
    "rendered_fonts": "[\"ArialMT\"]",
    "embedded_fonts_are_absent": false
}

The following fields can be found under the "document" object

nametype
value?string

URL to fetch the uploaded document.

Ex: https://assets.trustfull.com/documents/{resolution_id}/{uuid}.pdf
file_type?string

User-friendly file type label, derived server-side from the sniffed MIME at upload time.

Ex: PDF

Enum: PDF,JPEG,PNG,WEBP
document_type?string

Semantic category of the uploaded document, supplied by the customer at upload.

Ex: payslip

Enum: payslip,tax_document,bank_statement,utility_bill
image_quality?string

Derived three-cluster image-quality signal computed by the document analysis pipeline.

Ex: high

Enum: low,medium,high
modality?string

Derived document modality: pdf_native (>=500 chars of selectable text), image_pdf (scanned/flattened PDF), image (non-PDF raster), or other.

Ex: pdf_native

Enum: pdf_native,image_pdf,image,other
extractable_chars?integer

Number of natively extractable text characters in the document

Ex: 1842
image_area?number float

Percentage (0-100) of the analysed page area covered by raster images

Ex: 6.73
vector_drawings?integer

Count of vector drawing operations in the document

Ex: 27
raster_images?integer

Count of embedded raster images in the document

Ex: 3
image_info_mode?string

Colour mode of the analysed page.

Ex: RGB

Enum: L,1,P,RGB,RGBA,CMYK,YCbCr
image_info_width?integer

Width in pixels of the analysed page

Ex: 2480
image_info_height?integer

Height in pixels of the analysed page

Ex: 3508
image_info_dpi_x?integer

Horizontal DPI of the analysed page

Ex: 300
image_info_dpi_y?integer

Vertical DPI of the analysed page

Ex: 300
image_info_page_no?integer

Page index analysed (0-based) for multi-page PDFs

Ex: 0
image_info_is_from_rendered_pdf?boolean

True when image stats were measured on a rasterised PDF page

Ex: true
image_info_jpeg_qtable_count?integer

Number of JPEG quantisation tables; JPEG-only and unset for PDFs/PNGs

Ex: 2
image_metrics_sharpness?number float

Laplacian-variance sharpness score; higher means sharper text/edges

Ex: 4221.83
image_metrics_contrast?number float

RMS pixel-intensity contrast

Ex: 48.71
ocr_readability_confidence?number float

25th-percentile per-word OCR confidence (0-100)

Ex: 78
ocr_readability_words_count?integer

Number of words OCR recognised with positive confidence

Ex: 412
content_skew_angle?number float

Dominant content skew in degrees [-90, 90]; 0 is upright

Ex: 0.18
analysis_status?string

Final state of the analysis pipeline: `ok` if it ran and signals were filled in, `error` on a downstream failure, `skip` if no document was attached.

Ex: ok

Enum: ok,error,skip
score?integer

Document risk score (0-1000).

Ex: 500
score_cluster?string

A cluster summarizing the document outcome.

Ex: review

Enum: very_low,low,review,high,very_high
score_model_used?string

Identifier of the score model that produced this result.

Ex: document_score
reason_codes?string

Comma-separated risk and trust signal codes fired by the document explain chain.

Ex: TDOC001
risks_number?integer

Count of risk signals fired for this document.

Ex: 0
trusts_number?integer

Count of trust signals fired for this document.

Ex: 1
metadata_software?string

Producer software that wrote the file (PDF /Producer or image EXIF Software).

Ex: iTextSharp 5.5.13.2
metadata_creator?string

Originating application (PDF /Creator).

Ex: iTextSharpLite v5.3
metadata_author?string

Document author (PDF /Author or image EXIF Artist).

Ex: Payroll System
metadata_title?string

Document title (PDF /Title).

Ex: Payslip
metadata_creation_date?string

Creation date, normalized to UTC (YYYY-MM-DD HH:MM:SS).

Ex: 2026-01-01 11:00:00
metadata_creation_date_timezone?string

Original UTC offset of the creation date.

Ex: +01:00
metadata_mod_date?string

Modification date, normalized to UTC (YYYY-MM-DD HH:MM:SS).

Ex: 2026-01-01 11:00:00
metadata_mod_date_timezone?string

Original UTC offset of the modification date.

Ex: +01:00
metadata_pdf_version?string

PDF version.

Ex: 1.4
metadata_page_count?integer

Number of pages in the PDF.

Ex: 1
metadata_is_encrypted?boolean

Whether the PDF is encrypted.

Ex: false
metadata_is_xmp_present?boolean

Whether the PDF carries an XMP metadata packet.

Ex: false
metadata_image_make?string

Capture device maker (image EXIF Make).

Ex: Canon
metadata_image_model?string

Capture device model (image EXIF Model).

Ex: CanoScan LiDE 400
metadata_is_present?boolean

True when the document carries descriptive metadata headers.

Ex: true
metadata_author_is_absent?boolean

True when the metadata records no author (expected for a machine-generated document); false when an author is present (unexpected, possibly hand-edited).

Ex: true
metadata_software_is_trusted?boolean

True when the producer software is an enterprise automated document generator; false for manual/consumer/online editors; null when unknown.

Ex: true
metadata_software_trust_source?string

How the producer-software trust verdict was reached: curated_list or the LLM fallback.

Ex: curated_list
metadata_is_create_before_edit?boolean

True when CreationDate precedes ModDate (normal chronology).

Ex: true
metadata_date_is_in_past?boolean

True when both creation and modification dates are at or before today (1-day slack).

Ex: true
metadata_is_edit_close_to_create?boolean

True when ModDate is within two days of CreationDate.

Ex: true
metadata_timezone_is_consistent?boolean

True when CreationDate and ModDate share the same UTC offset.

Ex: true
xray_payslip_holder_first_name?string

Payslip holder first name, read from the hidden X-Ray section (payslips only).

Ex: ANTONIO
xray_payslip_holder_last_name?string

Payslip holder surname, read from the hidden X-Ray section (payslips only).

Ex: SAVIANO
xray_payslip_month?integer

Pay-period month (1-12), read from the hidden X-Ray section.

Ex: 6
xray_payslip_year?integer

Pay-period year, read from the hidden X-Ray section.

Ex: 2025
xray_payslip_net?number float

Net pay, read from the hidden X-Ray section.

Ex: 1531.4
xray_payslip_gross?number float

Total earnings, read from the hidden X-Ray section.

Ex: 3100.3
xray_payslip_iban?string

Payment IBAN, read from the hidden X-Ray section.

Ex: IT90J0760103400001054051964
ocr_payslip_holder_first_name?string

Payslip holder first name read from the printed page (payslips only).

Ex: ANTONIO
ocr_payslip_holder_last_name?string

Payslip holder surname read from the printed page (payslips only).

Ex: SAVIANO
ocr_payslip_month?integer

Pay-period month (1-12) read from the printed page.

Ex: 6
ocr_payslip_year?integer

Pay-period year read from the printed page.

Ex: 2025
ocr_payslip_net?number float

Net pay read from the printed page.

Ex: 1531.4
ocr_payslip_gross?number float

Total earnings read from the printed page.

Ex: 3100.3
ocr_payslip_iban?string

Payment IBAN read from the printed page.

Ex: IT90J0760103400001054051964
ocr_payslip_holder_first_name_details?string

JSON string with the verbatim printed text and its normalized 0-1 bounding box for the holder first name.

Ex: {"verbatim":"ANTONIO","bbox":{"x":0.12,"y":0.20,"width":0.18,"height":0.03}}
ocr_payslip_holder_last_name_details?string

JSON string with the verbatim printed text and its normalized 0-1 bounding box for the holder surname.

Ex: {"verbatim":"SAVIANO","bbox":{"x":0.32,"y":0.20,"width":0.20,"height":0.03}}
ocr_payslip_month_details?string

JSON string with the verbatim printed text and its normalized 0-1 bounding box for the pay-period month.

Ex: {"verbatim":"GIUGNO","bbox":{"x":0.12,"y":0.28,"width":0.10,"height":0.03}}
ocr_payslip_year_details?string

JSON string with the verbatim printed text and its normalized 0-1 bounding box for the pay-period year.

Ex: {"verbatim":"2025","bbox":{"x":0.24,"y":0.28,"width":0.06,"height":0.03}}
ocr_payslip_net_details?string

JSON string with the verbatim printed text and its normalized 0-1 bounding box for the net pay.

Ex: {"verbatim":"1.531,40","bbox":{"x":0.60,"y":0.70,"width":0.12,"height":0.03}}
ocr_payslip_gross_details?string

JSON string with the verbatim printed text and its normalized 0-1 bounding box for the total earnings.

Ex: {"verbatim":"3.100,30","bbox":{"x":0.60,"y":0.66,"width":0.12,"height":0.03}}
ocr_payslip_iban_details?string

JSON string with the verbatim printed text and its normalized 0-1 bounding box for the IBAN.

Ex: {"verbatim":"IT90J0760103400001054051964","bbox":{"x":0.12,"y":0.80,"width":0.40,"height":0.03}}
ocr_payslip_match_first_name?boolean

True when the printed first name matches the hidden X-Ray section; null when not comparable.

Ex: true
ocr_payslip_match_last_name?boolean

True when the printed surname matches the hidden X-Ray section; null when not comparable.

Ex: true
ocr_payslip_match_month?boolean

True when the printed pay-period month matches the hidden X-Ray section; null when not comparable.

Ex: true
ocr_payslip_match_year?boolean

True when the printed pay-period year matches the hidden X-Ray section; null when not comparable.

Ex: true
ocr_payslip_match_net?boolean

True when the printed net pay matches the hidden X-Ray section; null when not comparable.

Ex: true
ocr_payslip_match_gross?boolean

True when the printed total earnings match the hidden X-Ray section; null when not comparable.

Ex: true
ocr_payslip_match_iban?boolean

True when the printed IBAN matches the hidden X-Ray section; null when not comparable.

Ex: true
ocr_payslip_match_all?boolean

True when every comparable field matched; null when no field was comparable.

Ex: true
ocr_payslip_is_complete?boolean

True when every relevant payslip field was read from the printed page; null when the document is not a payslip.

Ex: true
ocr_bank_statement_holder_first_name?string

Account holder first name read from the printed page (bank statements only).

Ex: LUCIA
ocr_bank_statement_holder_last_name?string

Account holder surname read from the printed page (bank statements only).

Ex: GERVASI
ocr_bank_statement_iban?string

Account IBAN read from the printed page.

Ex: IT11E0200883120000300310092
ocr_bank_statement_bank_name?string

Issuing bank name read from the printed page.

Ex: UNICREDIT
ocr_bank_statement_period_start?string

Statement period start date (YYYY-MM-DD) read from the printed page.

Ex: 2026-01-01
ocr_bank_statement_period_end?string

Statement period end date (YYYY-MM-DD) read from the printed page.

Ex: 2026-03-31
ocr_bank_statement_opening_balance?number float

Opening balance read from the printed page.

Ex: 1818.27
ocr_bank_statement_closing_balance?number float

Closing balance read from the printed page.

Ex: 1686.18
ocr_bank_statement_holder_first_name_details?string

JSON string with the verbatim printed text and its normalized 0-1 bounding box for the holder first name.

Ex: {"verbatim":"LUCIA","bbox":{"x":0.58,"y":0.21,"width":0.05,"height":0.01}}
ocr_bank_statement_holder_last_name_details?string

JSON string with the verbatim printed text and its normalized 0-1 bounding box for the holder surname.

Ex: {"verbatim":"GERVASI","bbox":{"x":0.51,"y":0.21,"width":0.07,"height":0.01}}
ocr_bank_statement_iban_details?string

JSON string with the verbatim printed text and its normalized 0-1 bounding box for the IBAN.

Ex: {"verbatim":"IT11 E02008 83120 000300310092","bbox":{"x":0.07,"y":0.15,"width":0.32,"height":0.01}}
ocr_bank_statement_bank_name_details?string

JSON string with the verbatim printed text and its normalized 0-1 bounding box for the bank name.

Ex: {"verbatim":"UNICREDIT","bbox":{"x":0.21,"y":0.68,"width":0.40,"height":0.02}}
ocr_bank_statement_period_start_details?string

JSON string with the verbatim printed text and its normalized 0-1 bounding box for the period start date.

Ex: {"verbatim":"01.01.2026","bbox":{"x":0.07,"y":0.39,"width":0.08,"height":0.01}}
ocr_bank_statement_period_end_details?string

JSON string with the verbatim printed text and its normalized 0-1 bounding box for the period end date.

Ex: {"verbatim":"31.03.2026","bbox":{"x":0.71,"y":0.04,"width":0.14,"height":0.02}}
ocr_bank_statement_opening_balance_details?string

JSON string with the verbatim printed text and its normalized 0-1 bounding box for the opening balance.

Ex: {"verbatim":"1.818,27","bbox":{"x":0.11,"y":0.52,"width":0.05,"height":0.01}}
ocr_bank_statement_closing_balance_details?string

JSON string with the verbatim printed text and its normalized 0-1 bounding box for the closing balance.

Ex: {"verbatim":"1.686,18","bbox":{"x":0.73,"y":0.52,"width":0.05,"height":0.01}}
ocr_bank_statement_is_complete?boolean

True when every relevant bank-statement field was read from the printed page; null when the document is not a bank statement.

Ex: true
iban_is_valid?boolean

True when the IBAN read from the document passes the mod-97 checksum and country structure; false when malformed; null when no IBAN was read.

Ex: true
iban_country?string

ISO country code of the resolved IBAN; null when the IBAN is invalid or absent.

Ex: IT
iban_bank_code?string

Bank identifier of the resolved IBAN (ABI in Italy); null when unresolved.

Ex: 02008
iban_branch_code?string

Branch identifier of the resolved IBAN (CAB in Italy); null when unresolved.

Ex: 83120
iban_bic?string

BIC/SWIFT derived from the resolved bank code; null when the registry has no entry.

Ex: UNCRITMM
iban_bank_name?string

Bank name derived from the resolved bank code; null when the registry has no entry.

Ex: UniCredit S.p.A.
bank_statement_iban_is_consistent?boolean

True when the bank printed on the statement matches the bank its IBAN belongs to; false when they disagree (possible tampering); null when not comparable or not a bank statement.

Ex: true
ocr_bank_statement_bank_tax_id?string

Tax id / VAT number of the issuing bank as printed on the statement (not the account holder); null when not printed or not a bank statement.

Ex: 00348170101
iban_bank_tax_id?string

JSON string array of the issuing bank tax identifiers (Codice Fiscale, Partita IVA) resolved from the IBAN bank code via a maintained static list; null when the bank is not listed.

Ex: ["00348170101"]
bank_statement_bank_tax_id_is_consistent?boolean

True when the bank tax id printed on the statement matches the one its IBAN resolves to; false when they disagree (possible tampering); null when not comparable or not a bank statement.

Ex: true
overlapped_text?boolean

True when the document contains overlapping text.

Ex: true
overlapped_text_count?integer

Number of overlapping text occurrences in the document.

Ex: 1
overlapped_text_details?string

JSON string: one region per overlapping-text group, each with the layered text values, page, and normalized 0-1 bounding box.

Ex: [{"texts":["2.628,30","2.928,34"],"page":1,"bbox":{"x":0.9072,"y":0.7579,"width":0.0523,"height":0.0117}}]
mixed_font_token_count?integer

Number of tokens whose glyphs mix more than one font family.

Ex: 1
mixed_font_token_details?string

JSON string: one region per mixed-font token, each with the verbatim text, the fonts involved, page, and normalized 0-1 bounding box.

Ex: [{"text":"14.269,37","fonts":["Cambria,Bold","Courier New,Bold"],"page":2,"bbox":{"x":0.4435,"y":0.575,"width":0.0762,"height":0.011}}]
mixed_fonts_is_absent?boolean

True when no token mixes font families (good); False when a mixed-font token was found.

Ex: false
overprint_count?integer

Number of overprinted (text-over-text) regions found on a scanned bank statement.

Ex: 1
overprint_details?string

JSON string: one region per overprint band, each with the page and normalized 0-1 bounding box.

Ex: [{"page":1,"bbox":{"x":0.03,"y":0.94,"width":0.94,"height":0.02}}]
overprint_is_absent?boolean

True when no text is printed over other text on a scanned bank statement (good); False when an overprinted (text-over-text) region was found.

Ex: false
pdf_incremental_update?boolean

True when the PDF was re-saved after its original creation (an incremental update / appended revision).

Ex: false
pdf_incremental_update_count?integer

Number of incremental-update revisions appended to the PDF.

Ex: 0
tone_step_score?number float

Physical-tamper cue (0-100): a region whose paper tone steps brighter than the sheet, suggesting a separate sheet laid on top.

Ex: 0
grid_misalignment_score?number float

Physical-tamper cue (0-100): a region whose printing is rotated relative to the form grid.

Ex: 0
grid_misalignment_region?string

JSON string: page + normalized 0-1 bounding box of the grid-misaligned region, when one fired.

Ex: {"page":1,"bbox":{"x":0.4478,"y":0.0904,"width":0.215,"height":0.1175}}
print_style_deviation_score?number float

Physical-tamper cue (0-100, 50 = firing line): a text run whose darkness/sharpness/stroke is a local outlier (foreign print).

Ex: 0
print_style_deviation_region?string

JSON string: page + normalized 0-1 bounding box of the foreign-print region, when one fired.

Ex: {"page":1,"bbox":{"x":0.5355,"y":0.1653,"width":0.1355,"height":0.0473}}
is_physically_intact?boolean

False when the document shows physical alteration of photographed/scanned paper (glued patch or foreign-print insertion); null for non-scanned inputs.

Ex: true
known_format?string

Matched issuer template name; null when unrecognised or not assessed.

Ex: it_noipa_payslip

Enum: it_noipa_payslip,it_inps_payslip,it_teamsystem_payslip,it_zucchetti_payslip,it_sistemi_payslip,it_carabinieri_payslip,it_intesa_sanpaolo_bank_statement
known_format_is_present?boolean

True/False once a native PDF is assessed for a known template; null when not assessed (e.g. image PDF below the text threshold).

Ex: true
known_format_is_consistent?boolean

True when the matched template is structurally consistent with the genuine one; false when it diverges (possible tampering); null when no format matched.

Ex: true
embedded_fontsstring

JSON string: sorted distinct font family names embedded in the document; null when not assessed.

Ex: ["ArialBoldMT","ArialMT"]
non_embedded_fontsstring

JSON string: sorted distinct font family names referenced but not embedded in the document; null when not assessed.

Ex: ["TimesNewRomanPSMT"]
rendered_fontsstring

JSON string: sorted distinct font family names actually used to render the document text; null when not assessed.

Ex: ["ArialMT"]
embedded_fonts_are_absent?boolean

True when the document has no embedded fonts; null when not assessed.

Ex: false
Path Params
string
required
Headers
string
required
Response

Language
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json