Bank Statement, Cheque, DP Statement, Form 16, Invoice, ITR Acknowledgement, ITR Analysis, Salary Slip, Utility Bill — 10 types

Financial Documents


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

FieldTypeNotes
account_holder_namestringName on the account
account_numberstringAccount number
bank_namestringBank name
branch_namestringnull if not printed
ifsc_codestringnull if not printed
statement_from_datestringYYYY-MM-DD
statement_to_datestringYYYY-MM-DD
opening_balancenumberOpening balance
closing_balancenumberClosing balance
total_creditsnumbernull if not computed
total_debitsnumbernull if not computed
currencystringe.g. INR, USD
transactionsobject[]Each: date, debit, credit, balance, reference, description

Validation rules

FieldRule
account_holder_nameRequired
account_numberRequired · Masked
bank_nameRequired
statement_from_dateRequired · Format: date_iso
statement_to_dateRequired · Format: date_iso
closing_balanceRequired

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

FieldTypeNotes
cheque_numberstring6-digit number
bank_namestringBank name
branch_namestringnull if not printed
ifsc_codestringnull if not printed
micr_codestring9-digit MICR at bottom
datestringYYYY-MM-DD or null
payee_namestringPay to / name written on cheque
amount_figuresnumberAmount in figures
amount_wordsstringAmount in words
account_numberstringnull — may not be printed on all cheques
is_crossedbooleanWhether cheque has crossing lines
is_cancelledbooleanWhether CANCELLED is written across
is_account_payeebooleanA/C Payee stamp or marking

Validation rules

FieldRule
cheque_numberRequired · Regex ^[0-9]{6}$
bank_nameRequired
micr_codeOptional · Regex ^[0-9]{9}$
account_numberOptional · Masked

dp_statement — DP Statement

Analysis type: extraction

Dematerialised (demat) account holdings statement from CDSL or NSDL.

Fields extracted

FieldTypeNotes
holder_namestringAccount holder name
dp_namestringDepository participant / broker name
dp_idstringDP ID (8-digit for CDSL, IN prefix for NSDL)
bo_idstringBeneficiary owner ID (CDSL)
client_idstringnull if not printed
depositorystringCDSL or NSDL
pan_numberstringnull if not printed
statement_datestringYYYY-MM-DD or null
statement_periodstringe.g. As on 31-Mar-2026
total_market_valuenumbernull if not computed
holdingsobject[]Each: isin, security_name, quantity, face_value, market_value

Validation rules

FieldRule
holder_nameRequired
dp_nameRequired

form_16 — Form 16

Analysis type: extraction

Employer-issued TDS certificate under Section 203 of the Income Tax Act.

Fields extracted

FieldTypeNotes
employee_namestringEmployee name
employee_panstringEmployee PAN
employer_namestringEmployer name
employer_tanstring10-character TAN
assessment_yearstringe.g. 2026-27
period_fromstringYYYY-MM-DD or null
period_tostringYYYY-MM-DD or null
gross_salarynumberGross salary
standard_deductionnumbernull if not shown
exemptions_us10numberExemptions under Section 10
deduction_80cnumber80C deductions
deduction_80dnumber80D deductions
deductions_chapter_vi_anumberTotal Chapter VI-A deductions
net_taxable_salarynumbernull if not computed
total_taxable_incomenumberTotal taxable income
education_cessnumbernull if not shown
tax_payablenumbernull if not computed
total_tax_deductednumberTotal TDS deducted
certificate_numberstringnull if not printed

Validation rules

FieldRule
employee_nameRequired
employee_panRequired · Regex ^[A-Z]{5}[0-9]{4}[A-Z]$ · Format: uppercase · Masked
employer_tanRequired · Regex ^[A-Z]{4}[0-9]{5}[A-Z]$ · Format: uppercase
assessment_yearRequired
total_tax_deductedRequired

invoice_processing — Invoice

Analysis type: extraction

Fields extracted

FieldTypeNotes
invoice_numberstringInvoice number
invoice_datestringYYYY-MM-DD
vendor_namestringVendor / seller name
vendor_addressstringnull if not printed
vendor_gstinstring15-char GSTIN or null
buyer_namestringnull if not printed
buyer_addressstringnull if not printed
buyer_gstinstringnull if not printed
line_itemsobject[]Each: description, quantity, unit, unit_price, tax_rate, tax_amount, hsn_sac, amount
subtotalnumberAmount before tax
tax_amountnumberTotal tax (CGST+SGST or IGST)
total_amountnumberFinal payable amount
currencystringe.g. INR
due_datestringYYYY-MM-DD or null
payment_termsstringnull if not printed

Validation rules

FieldRule
vendor_nameRequired
invoice_numberRequired
invoice_dateRequired · Format: date_iso
total_amountRequired
vendor_gstinOptional · 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

FieldTypeNotes
acknowledgement_numberstring15-digit acknowledgement number
panstringPAN of the taxpayer
namestringTaxpayer name
assessment_yearstringe.g. 2025-26
itr_formstringITR-1, ITR-2, ITR-3, ITR-4 etc.
filing_datestringYYYY-MM-DD or null
verification_datestringYYYY-MM-DD or null
statusstringFiled, Verified, Processed
total_incomenumberTotal income
gross_total_incomenumbernull if not shown
deductionsnumberTotal Chapter VI-A deductions
tax_paidnumberTotal taxes paid (TDS + advance + self-assessment)
tax_payablenumbernull if not shown
refund_duenumbernull if not applicable
aadhaar_numberstringMay be partially masked
mobilestringnull if not printed
emailstringnull if not printed

Validation rules

FieldRule
panRequired · Regex ^[A-Z]{5}[0-9]{4}[A-Z]$ · Format: uppercase · Masked
nameRequired
acknowledgement_numberRequired · Regex ^[0-9]{15}$
assessment_yearRequired
total_incomeRequired

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

FieldTypeNotes
acknowledgement_numberstringAcknowledgement number
panstringPAN of the taxpayer
namestringTaxpayer name
form_typestringITR-1/ITR-2/ITR-3/ITR-4 etc.
assessment_yearstringYYYY-YY
filing_datestringDD-MMM-YYYY or null
date_of_birthstringDD/MM/YYYY or null
residential_statusstringResident/Non-Resident/RNOR
employer_namestringnull if not shown
employer_tanstringnull if not shown
gross_salarynumbernull if not applicable
gross_total_incomenumbernull if not shown
total_taxable_incomenumbernull if not shown
capital_gainsnumbernull if not applicable
income_from_house_propertynumbernull if not applicable
income_from_other_sourcesnumbernull if not applicable
deductions_under_vi_anumbernull if not shown
advance_taxnumbernull if not applicable
tds_totalnumbernull if not shown
self_assessment_taxnumbernull if not applicable
total_taxes_paidnumbernull if not shown
tax_payablenumbernull if not shown
refund_or_payablenumberPositive = refund, negative = payable
bank_accountsobject[]Each: bank_name, ifsc, account_number

Validation rules

FieldRule
panRequired · Regex ^[A-Z]{5}[0-9]{4}[A-Z]$ · Masked
acknowledgement_numberRequired

salary_slip — Salary Slip

Analysis type: extraction

Fields extracted

FieldTypeNotes
employee_namestringEmployee name
employer_namestringEmployer / company name
employee_idstringnull if not printed
designationstringnull if not printed
departmentstringnull if not printed
pay_periodstringe.g. March 2026, Mar-2026
pay_datestringYYYY-MM-DD or null
pf_numberstringUAN or PF account number
pan_numberstringnull if not printed
bank_accountstringnull if not printed
earningsobject[]Each: component (Basic, HRA, DA, Special Allowance, Conveyance…), amount
deductionsobject[]Each: component (PF, TDS, ESI, Professional Tax, LWF…), amount
gross_salarynumberTotal earnings
total_deductionsnumbernull if not computed
net_salarynumberTake-home / net pay

Validation rules

FieldRule
employee_nameRequired
employer_nameRequired
pay_periodRequired
gross_salaryRequired
net_salaryRequired

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

FieldTypeNotes
consumer_namestringConsumer / account holder name
consumer_numberstringConsumer / account number
provider_namestringElectricity board, gas company, water utility
bill_typestringelectricity, water, gas, broadband
bill_numberstringnull if not printed
bill_datestringYYYY-MM-DD or null
due_datestringYYYY-MM-DD or null
billing_periodstringe.g. Jan 2026 - Feb 2026
addressstringService address
meter_numberstringnull if not printed
previous_readingnumbernull if not shown
current_readingnumbernull if not shown
units_consumednumbernull if not shown
amount_duenumberCurrent bill amount
arrearsnumberPrevious unpaid amount
total_payablenumberamount_due + arrears
currencystringnull if not printed
billing_historyobject[]Each: period, units, amount

Validation rules

FieldRule
consumer_nameRequired
consumer_numberRequired
provider_nameRequired
amount_dueRequired