Financial document types extract structured data from banking, tax, payroll, and billing documents. Sensitive fields such as account_number and pan are masked in logs and audit output.
bank_statement — Bank Statement
Analysis type: extraction
Fields extracted
| Field | Type | Notes |
|---|
account_holder_name | string | Name on the account |
account_number | string | Account number |
bank_name | string | Bank name |
branch_name | string | null if not printed |
ifsc_code | string | null if not printed |
statement_from_date | string | YYYY-MM-DD |
statement_to_date | string | YYYY-MM-DD |
opening_balance | number | Opening balance |
closing_balance | number | Closing balance |
total_credits | number | null if not computed |
total_debits | number | null if not computed |
currency | string | e.g. INR, USD |
transactions | object[] | Each: date, debit, credit, balance, reference, description |
Validation rules
| Field | Rule |
|---|
account_holder_name | Required |
account_number | Required · Masked |
bank_name | Required |
statement_from_date | Required · Format: date_iso |
statement_to_date | Required · Format: date_iso |
closing_balance | Required |
Example
const result = await client.verify.document({
doc_type: "bank_statement",
file_url: "https://storage.example.com/statement.pdf",
});
// result.output.account_holder_name → "Rahul Mehta"
// result.output.closing_balance → 45320.50
// result.output.transactions → [{ date: "2026-02-01", credit: 50000, ... }]
cheque — Cheque
Analysis type: extraction
Fields extracted
| Field | Type | Notes |
|---|
cheque_number | string | 6-digit number |
bank_name | string | Bank name |
branch_name | string | null if not printed |
ifsc_code | string | null if not printed |
micr_code | string | 9-digit MICR at bottom |
date | string | YYYY-MM-DD or null |
payee_name | string | Pay to / name written on cheque |
amount_figures | number | Amount in figures |
amount_words | string | Amount in words |
account_number | string | null — may not be printed on all cheques |
is_crossed | boolean | Whether cheque has crossing lines |
is_cancelled | boolean | Whether CANCELLED is written across |
is_account_payee | boolean | A/C Payee stamp or marking |
Validation rules
| Field | Rule |
|---|
cheque_number | Required · Regex ^[0-9]{6}$ |
bank_name | Required |
micr_code | Optional · Regex ^[0-9]{9}$ |
account_number | Optional · Masked |
dp_statement — DP Statement
Analysis type: extraction
Dematerialised (demat) account holdings statement from CDSL or NSDL.
Fields extracted
| Field | Type | Notes |
|---|
holder_name | string | Account holder name |
dp_name | string | Depository participant / broker name |
dp_id | string | DP ID (8-digit for CDSL, IN prefix for NSDL) |
bo_id | string | Beneficiary owner ID (CDSL) |
client_id | string | null if not printed |
depository | string | CDSL or NSDL |
pan_number | string | null if not printed |
statement_date | string | YYYY-MM-DD or null |
statement_period | string | e.g. As on 31-Mar-2026 |
total_market_value | number | null if not computed |
holdings | object[] | Each: isin, security_name, quantity, face_value, market_value |
Validation rules
| Field | Rule |
|---|
holder_name | Required |
dp_name | Required |
form_16 — Form 16
Analysis type: extraction
Employer-issued TDS certificate under Section 203 of the Income Tax Act.
Fields extracted
| Field | Type | Notes |
|---|
employee_name | string | Employee name |
employee_pan | string | Employee PAN |
employer_name | string | Employer name |
employer_tan | string | 10-character TAN |
assessment_year | string | e.g. 2026-27 |
period_from | string | YYYY-MM-DD or null |
period_to | string | YYYY-MM-DD or null |
gross_salary | number | Gross salary |
standard_deduction | number | null if not shown |
exemptions_us10 | number | Exemptions under Section 10 |
deduction_80c | number | 80C deductions |
deduction_80d | number | 80D deductions |
deductions_chapter_vi_a | number | Total Chapter VI-A deductions |
net_taxable_salary | number | null if not computed |
total_taxable_income | number | Total taxable income |
education_cess | number | null if not shown |
tax_payable | number | null if not computed |
total_tax_deducted | number | Total TDS deducted |
certificate_number | string | null if not printed |
Validation rules
| Field | Rule |
|---|
employee_name | Required |
employee_pan | Required · Regex ^[A-Z]{5}[0-9]{4}[A-Z]$ · Format: uppercase · Masked |
employer_tan | Required · Regex ^[A-Z]{4}[0-9]{5}[A-Z]$ · Format: uppercase |
assessment_year | Required |
total_tax_deducted | Required |
invoice_processing — Invoice
Analysis type: extraction
Fields extracted
| Field | Type | Notes |
|---|
invoice_number | string | Invoice number |
invoice_date | string | YYYY-MM-DD |
vendor_name | string | Vendor / seller name |
vendor_address | string | null if not printed |
vendor_gstin | string | 15-char GSTIN or null |
buyer_name | string | null if not printed |
buyer_address | string | null if not printed |
buyer_gstin | string | null if not printed |
line_items | object[] | Each: description, quantity, unit, unit_price, tax_rate, tax_amount, hsn_sac, amount |
subtotal | number | Amount before tax |
tax_amount | number | Total tax (CGST+SGST or IGST) |
total_amount | number | Final payable amount |
currency | string | e.g. INR |
due_date | string | YYYY-MM-DD or null |
payment_terms | string | null if not printed |
Validation rules
| Field | Rule |
|---|
vendor_name | Required |
invoice_number | Required |
invoice_date | Required · Format: date_iso |
total_amount | Required |
vendor_gstin | Optional · Regex ^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z][0-9A-Z]Z[0-9A-Z]$ · Format: uppercase |
itr_acknowledgement — ITR Acknowledgement
Analysis type: extraction
ITR-V / acknowledgement slip issued after filing an income tax return.
Fields extracted
| Field | Type | Notes |
|---|
acknowledgement_number | string | 15-digit acknowledgement number |
pan | string | PAN of the taxpayer |
name | string | Taxpayer name |
assessment_year | string | e.g. 2025-26 |
itr_form | string | ITR-1, ITR-2, ITR-3, ITR-4 etc. |
filing_date | string | YYYY-MM-DD or null |
verification_date | string | YYYY-MM-DD or null |
status | string | Filed, Verified, Processed |
total_income | number | Total income |
gross_total_income | number | null if not shown |
deductions | number | Total Chapter VI-A deductions |
tax_paid | number | Total taxes paid (TDS + advance + self-assessment) |
tax_payable | number | null if not shown |
refund_due | number | null if not applicable |
aadhaar_number | string | May be partially masked |
mobile | string | null if not printed |
email | string | null if not printed |
Validation rules
| Field | Rule |
|---|
pan | Required · Regex ^[A-Z]{5}[0-9]{4}[A-Z]$ · Format: uppercase · Masked |
name | Required |
acknowledgement_number | Required · Regex ^[0-9]{15}$ |
assessment_year | Required |
total_income | Required |
itr_analysis — Income Tax Return (ITR)
Analysis type: extraction
Full ITR form — more comprehensive than the acknowledgement, covering income breakdowns, deductions, and tax computation.
Fields extracted
| Field | Type | Notes |
|---|
acknowledgement_number | string | Acknowledgement number |
pan | string | PAN of the taxpayer |
name | string | Taxpayer name |
form_type | string | ITR-1/ITR-2/ITR-3/ITR-4 etc. |
assessment_year | string | YYYY-YY |
filing_date | string | DD-MMM-YYYY or null |
date_of_birth | string | DD/MM/YYYY or null |
residential_status | string | Resident/Non-Resident/RNOR |
employer_name | string | null if not shown |
employer_tan | string | null if not shown |
gross_salary | number | null if not applicable |
gross_total_income | number | null if not shown |
total_taxable_income | number | null if not shown |
capital_gains | number | null if not applicable |
income_from_house_property | number | null if not applicable |
income_from_other_sources | number | null if not applicable |
deductions_under_vi_a | number | null if not shown |
advance_tax | number | null if not applicable |
tds_total | number | null if not shown |
self_assessment_tax | number | null if not applicable |
total_taxes_paid | number | null if not shown |
tax_payable | number | null if not shown |
refund_or_payable | number | Positive = refund, negative = payable |
bank_accounts | object[] | Each: bank_name, ifsc, account_number |
Validation rules
| Field | Rule |
|---|
pan | Required · Regex ^[A-Z]{5}[0-9]{4}[A-Z]$ · Masked |
acknowledgement_number | Required |
salary_slip — Salary Slip
Analysis type: extraction
Fields extracted
| Field | Type | Notes |
|---|
employee_name | string | Employee name |
employer_name | string | Employer / company name |
employee_id | string | null if not printed |
designation | string | null if not printed |
department | string | null if not printed |
pay_period | string | e.g. March 2026, Mar-2026 |
pay_date | string | YYYY-MM-DD or null |
pf_number | string | UAN or PF account number |
pan_number | string | null if not printed |
bank_account | string | null if not printed |
earnings | object[] | Each: component (Basic, HRA, DA, Special Allowance, Conveyance…), amount |
deductions | object[] | Each: component (PF, TDS, ESI, Professional Tax, LWF…), amount |
gross_salary | number | Total earnings |
total_deductions | number | null if not computed |
net_salary | number | Take-home / net pay |
Validation rules
| Field | Rule |
|---|
employee_name | Required |
employer_name | Required |
pay_period | Required |
gross_salary | Required |
net_salary | Required |
Example
const result = await client.verify.document({
doc_type: "salary_slip",
file_url: "https://storage.example.com/salary_march_2026.pdf",
});
// result.output.net_salary → 72400
// result.output.earnings → [
// { component: "Basic", amount: 45000 },
// { component: "HRA", amount: 18000 },
// { component: "Special Allowance", amount: 12000 }
// ]
utility_bill — Utility Bill
Analysis type: extraction
Electricity, water, gas, or broadband bills.
Fields extracted
| Field | Type | Notes |
|---|
consumer_name | string | Consumer / account holder name |
consumer_number | string | Consumer / account number |
provider_name | string | Electricity board, gas company, water utility |
bill_type | string | electricity, water, gas, broadband |
bill_number | string | null if not printed |
bill_date | string | YYYY-MM-DD or null |
due_date | string | YYYY-MM-DD or null |
billing_period | string | e.g. Jan 2026 - Feb 2026 |
address | string | Service address |
meter_number | string | null if not printed |
previous_reading | number | null if not shown |
current_reading | number | null if not shown |
units_consumed | number | null if not shown |
amount_due | number | Current bill amount |
arrears | number | Previous unpaid amount |
total_payable | number | amount_due + arrears |
currency | string | null if not printed |
billing_history | object[] | Each: period, units, amount |
Validation rules
| Field | Rule |
|---|
consumer_name | Required |
consumer_number | Required |
provider_name | Required |
amount_due | Required |