Skip to content

feat: open payments java sdk blog post#180

Open
oana-lolea wants to merge 5 commits intomainfrom
oana/open-payments-java-sdk
Open

feat: open payments java sdk blog post#180
oana-lolea wants to merge 5 commits intomainfrom
oana/open-payments-java-sdk

Conversation

@oana-lolea
Copy link

@oana-lolea oana-lolea commented Dec 19, 2025

PR Checklist

  • Linked issue added (e.g., Fixes #123)
  • I have run bun run format to ensure code is properly formatted
  • I have verified that bun run lint passes without errors
  • If blog post was added:
    • Ensure images have been optimised
    • Update dates to reflect the actual publishing date when merged (file names, folder names, and frontmatter)

Summary

Added a blog post regarding the Java SDK for Open Payments.
Topics:

  • introduction of the SDK
  • why we built it
  • challenges we faced
  • why it's useful for Java developers
  • SDK features
  • getting started
  • use cases
  • project structure

@netlify
Copy link

netlify bot commented Dec 19, 2025

Deploy Preview for developers-preview ready!

Name Link
🔨 Latest commit 3c3a292
🔍 Latest deploy log https://app.netlify.com/projects/developers-preview/deploys/698d9135d669ee0008ff71ad
😎 Deploy Preview https://deploy-preview-180--developers-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@oana-lolea oana-lolea marked this pull request as ready for review December 19, 2025 08:07
---
title: 'Getting Started with Open Payments Java SDK'
description: 'Discover the Open Payments Java SDK and master its usage for seamless integrations.'
date: 2025-12-18
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll update the date when it will be released

<artifactId>open-payments</artifactId>
<version>1.0.0</version>
</dependency>
```
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note to self: check before publishing that the project is available on Maven Central

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

@mkurapov mkurapov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General question/suggestion, were there any specific challenges during building the SDK that is worth mentioning?


- Complete support for managing Open Payments operations (grants, incoming and outgoing payments, obtaining quotes and token).
- Full error handling and validation.
- Configurable HTTP clients.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can mention how these can be configured

We've heard from our community: Java remains a powerhouse for enterprise-grade applications, especially in the fintech space where reliability, scalability, and security are paramount. The new Java SDK addresses this by offering:

- **Native Java feel**: Fluent APIs, builders, and strong typing.
- **Simplified complexity**: Handles GNAP grant flows, HTTP signing (EdDSA), nonce management, and interactive continuations automatically.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Simplified complexity**: Handles GNAP grant flows, HTTP signing (EdDSA), nonce management, and interactive continuations automatically.
- **Simplified complexity**: Handles GNAP grant flows, HTTP signature support (Ed25519), nonce management, and interactive continuations automatically.

also, what does the SDK do with regards to "interactive continuations automatically?"

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I meant that for the integration testing, I've removed it.

@oana-lolea oana-lolea requested a review from mkurapov January 23, 2026 15:45
Copy link
Contributor

@mkurapov mkurapov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Properly able to submit this review now :)

Comment on lines +43 to +47
While building the Java SDK for Interledger's Open Payments, we ran into two main challenges.

First, the OpenAPI specification did not work well with Java code generators. The generated Java code was cluttered — with unnecessary wrappers and structures that did not respect typical Java idioms and readability standards. Instead of trying to fix generated code with extra scripts or keeping the output, we chose to write the entire client layer by hand. This gave us a lightweight, focused library with full alignment to Java's conventions.

We also faced JSON handling issues that default Java libraries couldn't manage well. Open Payments models include special cases like RFC 3339 timestamp (`Instant`), ordered set (needing preserved insertion order of `Set`), and `Client` model. To fix this, we wrote custom serializers to ensure exact spec compliance.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can add a subtitle for this section to better separate it

@oana-lolea oana-lolea requested a review from mkurapov February 12, 2026 08:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants