A web interface built with Vaadin to interact with the Monobank Corporate API.
This application simplifies the complex cryptographic requirements of the Monobank API, specifically the generation of the X-Sign header (ECDSA signature using a secp256k1 key pair), allowing businesses to easily register and check their integration status.
The application consists of two main tabs: Registration and Status Check.
This section allows a new corporate client to apply for API access.
-
What happens under the hood:
- The app generates a new
secp256k1cryptographic key pair using the BouncyCastle provider. - It constructs the
X-Signheader by signing the concatenation of the current UNIX timestamp (X-Time) and the request path using the generated private key (SHA256withECDSA). - The form data (Company Name, Contact Person, etc.) alongside the Base64-encoded Public Key is sent to the Monobank API.
- Upon successful registration, the user is provided with direct download links to safely store their
private.keyandpublic.pemfiles. These keys are not stored on the server.
- The app generates a new
This section allows an existing applicant to check the approval status of their application.
-
What happens under the hood:
- The user uploads their previously saved
private.keyandpublic.pemfiles via the drag-and-drop interface. - The application reads these files into memory to re-generate a valid
X-Signheader for the/statusendpoint. - It sends the signed request to the Monobank API and displays the HTTP status code and the raw JSON response directly in the UI.
- The user uploads their previously saved
- UI Framework: Vaadin Flow (Java)
- Cryptography: Java Security APIs +
org.bouncycastle - HTTP Client: Native Java
java.net.http.HttpClient