Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.5.0"
".": "0.5.1"
}
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# Changelog

## 0.5.1 (2026-03-03)

Full Changelog: [v0.5.0...v0.5.1](https://github.com/CASParser/cas-parser-java/compare/v0.5.0...v0.5.1)

### Chores

* drop apache dependency ([2ea7ec5](https://github.com/CASParser/cas-parser-java/commit/2ea7ec51ef82bacadd0df76d7886e7c52e1ab902))
* **internal:** codegen related update ([e8504a7](https://github.com/CASParser/cas-parser-java/commit/e8504a766d553e1c253e504df23c21f99d89c5da))
* **internal:** expand imports ([fdca7cd](https://github.com/CASParser/cas-parser-java/commit/fdca7cd3a6a27f31b5b163b456eccf5c956db18f))
* make `Properties` more resilient to `null` ([72f0c67](https://github.com/CASParser/cas-parser-java/commit/72f0c67cb321fb2ee5832c9c3f775d0b82353a0d))

## 0.5.0 (2026-02-23)

Full Changelog: [v0.4.0...v0.5.0](https://github.com/CASParser/cas-parser-java/compare/v0.4.0...v0.5.0)
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

<!-- x-release-please-start-version -->

[![Maven Central](https://img.shields.io/maven-central/v/com.cas_parser.api/cas-parser-java)](https://central.sonatype.com/artifact/com.cas_parser.api/cas-parser-java/0.5.0)
[![javadoc](https://javadoc.io/badge2/com.cas_parser.api/cas-parser-java/0.5.0/javadoc.svg)](https://javadoc.io/doc/com.cas_parser.api/cas-parser-java/0.5.0)
[![Maven Central](https://img.shields.io/maven-central/v/com.cas_parser.api/cas-parser-java)](https://central.sonatype.com/artifact/com.cas_parser.api/cas-parser-java/0.5.1)
[![javadoc](https://javadoc.io/badge2/com.cas_parser.api/cas-parser-java/0.5.1/javadoc.svg)](https://javadoc.io/doc/com.cas_parser.api/cas-parser-java/0.5.1)

<!-- x-release-please-end -->

Expand All @@ -22,7 +22,7 @@ Use the Cas Parser MCP Server to enable AI assistants to interact with this API,

<!-- x-release-please-start-version -->

The REST API documentation can be found on [casparser.in](https://casparser.in/docs). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.cas_parser.api/cas-parser-java/0.5.0).
The REST API documentation can be found on [casparser.in](https://casparser.in/docs). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.cas_parser.api/cas-parser-java/0.5.1).

<!-- x-release-please-end -->

Expand All @@ -33,7 +33,7 @@ The REST API documentation can be found on [casparser.in](https://casparser.in/d
### Gradle

```kotlin
implementation("com.cas_parser.api:cas-parser-java:0.5.0")
implementation("com.cas_parser.api:cas-parser-java:0.5.1")
```

### Maven
Expand All @@ -42,7 +42,7 @@ implementation("com.cas_parser.api:cas-parser-java:0.5.0")
<dependency>
<groupId>com.cas_parser.api</groupId>
<artifactId>cas-parser-java</artifactId>
<version>0.5.0</version>
<version>0.5.1</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ repositories {

allprojects {
group = "com.cas_parser.api"
version = "0.5.0" // x-release-please-version
version = "0.5.1" // x-release-please-version
}

subprojects {
Expand Down
2 changes: 0 additions & 2 deletions cas-parser-java-core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,6 @@ dependencies {
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.18.2")
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.18.2")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.18.2")
implementation("org.apache.httpcomponents.core5:httpcore5:5.2.4")
implementation("org.apache.httpcomponents.client5:httpclient5:5.3.1")

testImplementation(kotlin("test"))
testImplementation(project(":cas-parser-java-client-okhttp"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,28 +53,97 @@ interface CasParserClient {
*/
fun withOptions(modifier: Consumer<ClientOptions.Builder>): CasParserClient

/**
* Endpoints for checking API quota and credits usage. These endpoints help you monitor your API
* usage and remaining quota.
*/
fun credits(): CreditService

/**
* Endpoints for checking API quota and credits usage. These endpoints help you monitor your API
* usage and remaining quota.
*/
fun logs(): LogService

/**
* Endpoints for managing access tokens for the Portfolio Connect SDK. Use these to generate
* short-lived `at_` prefixed tokens that can be safely passed to frontend applications. Access
* tokens can be used in place of API keys on all v4 endpoints.
*/
fun accessToken(): AccessTokenService

/**
* Endpoints for managing access tokens for the Portfolio Connect SDK. Use these to generate
* short-lived `at_` prefixed tokens that can be safely passed to frontend applications. Access
* tokens can be used in place of API keys on all v4 endpoints.
*/
fun verifyToken(): VerifyTokenService

/** Endpoints for parsing CAS PDF files from different sources. */
fun camsKfintech(): CamsKfintechService

/** Endpoints for parsing CAS PDF files from different sources. */
fun cdsl(): CdslService

/**
* Endpoints for parsing Contract Note PDF files from various SEBI brokers like Zerodha, Groww,
* Upstox, ICICI etc.
*/
fun contractNote(): ContractNoteService

/**
* Endpoints for importing CAS files directly from user email inboxes.
*
* **Supported Providers:** Gmail (more coming soon)
*
* **How it works:**
* 1. Call `POST /v4/inbox/connect` to get an OAuth URL
* 2. Redirect user to the OAuth URL for consent
* 3. User is redirected back to your `redirect_uri` with an encrypted `inbox_token`
* 4. Use the token to list/fetch CAS files from their inbox (`/v4/inbox/cas`)
* 5. Files are uploaded to temporary cloud storage (URLs expire in 24 hours)
*
* **Security:**
* - Read-only access (we cannot send emails)
* - Tokens are encrypted with server-side secret
* - User can revoke access anytime via `/v4/inbox/disconnect`
*/
fun inbox(): InboxService

/** Endpoints for generating new CAS documents via email mailback (KFintech). */
fun kfintech(): KfintechService

/** Endpoints for parsing CAS PDF files from different sources. */
fun nsdl(): NsdlService

/** Endpoints for parsing CAS PDF files from different sources. */
fun smart(): SmartService

/**
* Create dedicated inbound email addresses for investors to forward their CAS statements.
*
* **Use Case:** Your app wants to collect CAS statements from users without requiring OAuth or
* file upload.
*
* **How it works:**
* 1. Call `POST /v4/inbound-email` to create a unique inbound email address
* 2. Display this email to your user: "Forward your CAS statement to
* ie_xxx@import.casparser.in"
* 3. When user forwards a CAS email, we verify sender authenticity (SPF/DKIM) and call your
* webhook
* 4. Your webhook receives email metadata + attachment download URLs
*
* **Sender Validation:**
* - Only emails from verified CAS authorities are processed:
* - CDSL: `eCAS@cdslstatement.com`
* - NSDL: `NSDL-CAS@nsdl.co.in`
* - CAMS: `donotreply@camsonline.com`
* - KFintech: `samfS@kfintech.com`
* - Emails failing SPF/DKIM/DMARC are rejected
* - Forwarded emails must contain the original sender in headers
*
* **Billing:** 0.2 credits per successfully processed valid email
*/
fun inboundEmail(): InboundEmailService

/**
Expand All @@ -100,28 +169,97 @@ interface CasParserClient {
*/
fun withOptions(modifier: Consumer<ClientOptions.Builder>): CasParserClient.WithRawResponse

/**
* Endpoints for checking API quota and credits usage. These endpoints help you monitor your
* API usage and remaining quota.
*/
fun credits(): CreditService.WithRawResponse

/**
* Endpoints for checking API quota and credits usage. These endpoints help you monitor your
* API usage and remaining quota.
*/
fun logs(): LogService.WithRawResponse

/**
* Endpoints for managing access tokens for the Portfolio Connect SDK. Use these to generate
* short-lived `at_` prefixed tokens that can be safely passed to frontend applications.
* Access tokens can be used in place of API keys on all v4 endpoints.
*/
fun accessToken(): AccessTokenService.WithRawResponse

/**
* Endpoints for managing access tokens for the Portfolio Connect SDK. Use these to generate
* short-lived `at_` prefixed tokens that can be safely passed to frontend applications.
* Access tokens can be used in place of API keys on all v4 endpoints.
*/
fun verifyToken(): VerifyTokenService.WithRawResponse

/** Endpoints for parsing CAS PDF files from different sources. */
fun camsKfintech(): CamsKfintechService.WithRawResponse

/** Endpoints for parsing CAS PDF files from different sources. */
fun cdsl(): CdslService.WithRawResponse

/**
* Endpoints for parsing Contract Note PDF files from various SEBI brokers like Zerodha,
* Groww, Upstox, ICICI etc.
*/
fun contractNote(): ContractNoteService.WithRawResponse

/**
* Endpoints for importing CAS files directly from user email inboxes.
*
* **Supported Providers:** Gmail (more coming soon)
*
* **How it works:**
* 1. Call `POST /v4/inbox/connect` to get an OAuth URL
* 2. Redirect user to the OAuth URL for consent
* 3. User is redirected back to your `redirect_uri` with an encrypted `inbox_token`
* 4. Use the token to list/fetch CAS files from their inbox (`/v4/inbox/cas`)
* 5. Files are uploaded to temporary cloud storage (URLs expire in 24 hours)
*
* **Security:**
* - Read-only access (we cannot send emails)
* - Tokens are encrypted with server-side secret
* - User can revoke access anytime via `/v4/inbox/disconnect`
*/
fun inbox(): InboxService.WithRawResponse

/** Endpoints for generating new CAS documents via email mailback (KFintech). */
fun kfintech(): KfintechService.WithRawResponse

/** Endpoints for parsing CAS PDF files from different sources. */
fun nsdl(): NsdlService.WithRawResponse

/** Endpoints for parsing CAS PDF files from different sources. */
fun smart(): SmartService.WithRawResponse

/**
* Create dedicated inbound email addresses for investors to forward their CAS statements.
*
* **Use Case:** Your app wants to collect CAS statements from users without requiring OAuth
* or file upload.
*
* **How it works:**
* 1. Call `POST /v4/inbound-email` to create a unique inbound email address
* 2. Display this email to your user: "Forward your CAS statement to
* ie_xxx@import.casparser.in"
* 3. When user forwards a CAS email, we verify sender authenticity (SPF/DKIM) and call your
* webhook
* 4. Your webhook receives email metadata + attachment download URLs
*
* **Sender Validation:**
* - Only emails from verified CAS authorities are processed:
* - CDSL: `eCAS@cdslstatement.com`
* - NSDL: `NSDL-CAS@nsdl.co.in`
* - CAMS: `donotreply@camsonline.com`
* - KFintech: `samfS@kfintech.com`
* - Emails failing SPF/DKIM/DMARC are rejected
* - Forwarded emails must contain the original sender in headers
*
* **Billing:** 0.2 credits per successfully processed valid email
*/
fun inboundEmail(): InboundEmailService.WithRawResponse
}
}
Loading
Loading