Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Parse Consolidated Account Statement (CAS) PDF files generated from CAMS/KFINTECH
casparser
also includes a command line tool with the following analysis tools
summary
- print portfolio summarygains
- Print capital gains report (summary and detailed)
pip install -U casparser
pip install -U 'casparser[fast]'
Note: Enabling this dependency could result in licensing changes. Check the License section for more details
import casparser
data = casparser.read_cas_pdf("/path/to/cas/file.pdf", "password")
# Get data in json format
json_str = casparser.read_cas_pdf("/path/to/cas/file.pdf", "password", output="json")
# Get transactions data in csv string format
csv_str = casparser.read_cas_pdf("/path/to/cas/file.pdf", "password", output="csv")
{
"statement_period": {
"from": "YYYY-MMM-DD",
"to": "YYYY-MMM-DD"
},
"file_type": "CAMS/KARVY/UNKNOWN",
"cas_type": "DETAILED/SUMMARY",
"investor_info": {
"email": "string",
"name": "string",
"mobile": "string",
"address": "string"
},
"folios": [
{
"folio": "string",
"amc": "string",
"PAN": "string",
"KYC": "OK/NOT OK",
"PANKYC": "OK/NOT OK",
"schemes": [
{
"scheme": "string",
"isin": "string",
"amfi": "string",
"advisor": "string",
"rta_code": "string",
"rta": "string",
"open": "number",
"close": "number",
"close_calculated": "number",
"valuation": {
"date": "date",
"nav": "number",
"value": "number"
},
"transactions": [
{
"date": "YYYY-MM-DD",
"description": "string",
"amount": "number",
"units": "number",
"nav": "number",
"balance": "number",
"type": "string",
"dividend_rate": "number"
}
]
}
]
}
]
}
Notes:
type
can be any value from the following
PURCHASE
PURCHASE_SIP
REDEMPTION
SWITCH_IN
SWITCH_IN_MERGER
SWITCH_OUT
SWITCH_OUT_MERGER
DIVIDEND_PAYOUT
DIVIDEND_REINVESTMENT
SEGREGATION
STAMP_DUTY_TAX
TDS_TAX
STT_TAX
MISC
dividend_rate
is applicable only for DIVIDEND_PAYOUT
and
DIVIDEND_REINVESTMENT
transactions.casparser also comes with a command-line interface that prints summary of parsed portfolio in a wide variety of formats.
Usage: casparser [-o output_file.json|output_file.csv] [-p password] [-s] [-a] CAS_PDF_FILE
-o, --output FILE Output file path. Saves the parsed data as json or csv
depending on the file extension. For other extensions, the
summary output is saved. [See note below]
-s, --summary Print Summary of transactions parsed.
-p PASSWORD CAS password
-a, --include-all Include schemes with zero valuation in the
summary output
-g, --gains Generate Capital Gains Report (BETA)
--gains-112a ask|FY2020-21 Generate Capital Gains Report - 112A format for
a given financial year - Use 'ask' for a prompt
from available options (BETA)
--force-pdfminer Force PDFMiner parser even if MuPDF is
detected
--version Show the version and exit.
-h, --help Show this message and exit.
# Print portfolio summary
casparser /path/to/cas.pdf -p password
# Print portfolio and capital gains summary
casparser /path/to/cas.pdf -p password -g
# Save parsed data as a json file
casparser /path/to/cas.pdf -p password -o pdf_parsed.json
# Save parsed data as a csv file
casparser /path/to/cas.pdf -p password -o pdf_parsed.csv
# Save capital gains transactions in csv files (pdf_parsed-gains-summary.csv and
# pdf_parsed-gains-detailed.csv)
casparser /path/to/cas.pdf -p password -g -o pdf_parsed.csv
Note: casparser cli
supports two special output file formats [-o file.json / file.csv]
json
- complete parsed data is exported in json format (including investor info)csv
- Summary info is exported in csv format if the input file is a summary statement or if
a summary flag (-s/--summary
) is passed as argument to the CLI. Otherwise, full
transaction history is included in the export.
If -g
flag is present, two additional files '{basename}-gains-summary.csv',
'{basename}-gains-detailed.csv' are created with the capital-gains data.Since v0.4.3, casparser
includes support for identifying ISIN and AMFI code for the parsed schemes
via the helper module casparser-isin. If the parser
fails to assign ISIN or AMFI codes to a scheme, try updating the local ISIN database by
casparser-isin --update
If it still fails, please raise an issue at casparser-isin with the failing scheme name(s).
CASParser is distributed under MIT license by default. However enabling the optional dependency
mupdf/fast
would imply the use of PyMuPDF /
MuPDF and hence the licenses GNU GPL v3 and GNU Affero GPL v3
would apply. Copies of all licenses have been included in this repository. - IANAL
FAQs
(Karvy/Kfintech/CAMS) Consolidated Account Statement (CAS) PDF parser
We found that casparser demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.