DigiMR Documentation (English)¶
SDK Version: 2.0 | Last Updated: 2026-04-17 | Status: Stable
DigiMR is a comprehensive SDK + REST/gRPC API system for Turkey's qualified electronic signature infrastructure. This documentation targets customer integration teams.
Note: Turkish documentation is the primary reference and always up-to-date. English pages are translated from Turkish; if you notice a discrepancy, the Turkish version is authoritative.
Quick Start (30 seconds)¶
using DigitalSignature.SDK;
using DigitalSignature.Core.Models;
var sdk = new DigitalSignatureSDK();
sdk.SetLicenseFile("digimr-sdk.lic");
using var provider = await sdk.CreateAndAuthenticateProviderAsync(
SigningProviderType.Software,
new AuthenticationContext
{
CertificateData = File.ReadAllBytes("certificate.pfx"),
CertificatePassword = Environment.GetEnvironmentVariable("PFX_PASSWORD")!
});
var pdfData = File.ReadAllBytes("document.pdf");
var result = await sdk.SignDataWithProviderAsync(pdfData, provider, new SignatureParameters
{
Format = SignatureFormat.PAdES,
Level = SignatureLevel.B_B
});
File.WriteAllBytes("document-signed.pdf", result.SignedData!);
Details: Examples — Beginner (translation pending)
Quick Navigation¶
| Your goal | Document |
|---|---|
| Write code now | EXAMPLES.md — 17 scenarios (C# + curl) (translation pending) |
| Learn concepts | USER_GUIDE.md — Tutorial walkthrough (translation pending) |
| Decision guide | SCENARIO_GUIDE.md — Decision diagrams (translation pending) |
| SDK reference (.NET) | SDK_REFERENCE.md — 23 sections + 4 Appendices (translation pending) |
| REST API reference | API_REFERENCE.md — 20 sections + 3 Appendices (translation pending) |
Translation status: Turkish documentation is complete and authoritative. English translations are in progress. For now, please use the Turkish documents in docs/tr/ — they are the primary source of truth. You can also refer to code examples and C# identifiers which are already in English.
What's New in v2.0¶
6 new SDK methods:
- CheckReadinessAsync() — Is the server ready (license, TSA, trust store)?
- CheckSignatureTypeAsync() — Quick format/level verification
- InspectSignaturesAsync() — Signature inventory (certificates, timestamps, roles)
- ListTsaProviders() — Configured TSA provider list
- VerifyTokenPin() — Verify PIN without signing
- ListSlotCertificates() — Token certificate enumeration
5 new REST endpoints:
- POST /verify/check, POST /verify/inspect
- GET /timestamp/providers
- POST /token/pin/verify, GET /token/slots/{id}/certificates
- GET /health/ready
Breaking changes (migration required):
- String-path overloads removed — only byte[] versions remain
- Full list: SDK_REFERENCE.md Appendix D (Turkish: SDK_REFERANS.md)
- Migration guide: CHANGELOG.md
Supported Formats and Levels¶
| Format | Standard | Supported Levels |
|---|---|---|
| PAdES | ETSI EN 319 142 | B-B, B-T, B-LT, B-LTA |
| CAdES | ETSI EN 319 122 | B-B, B-T, B-C, B-X, B-LT, B-LTA |
| XAdES | ETSI EN 319 132 | B-B, B-T, B-LT, B-LTA |
| JAdES | ETSI TS 119 182 | B-B, B-T |
| ASiC-S / ASiC-E | ETSI EN 319 162 | B-T, B-LT, B-LTA |
| OOXML | ISO/IEC 29500 | B-T |
| EYP | Turkish CBDDO V2.0 / V1.3 | OPC + CAdES (seal: B-LTA) |
| KEP | Turkish Law #7201 | CAdES-T + ZIP |
| UETS | PTT UETS | CAdES-T + ZIP |
Architecture¶
Two usage models:
In-process SDK (local signing) API server (remote / other languages)
├─ .NET SDK (DigitalSignature.SDK) ├─ REST API (:7701)
└─ Java SDK (pure Java, java-native) └─ gRPC API (:7702)
- .NET SDK: in-process core library (
IDigitalSignatureSDK) — produces signatures locally. - Java SDK: in-process pure-Java library (
sdk/java-native, BouncyCastle/PDFBox) — same model as the .NET SDK, signs locally; module services (CadesSigner, XAdesSigner, PadesSigner, EYP, …). The pure-Java SDK release is in preparation. - Java gRPC client: thin remote client for the API (
digimr-sdk-1.0.0-all.jar) — signing happens on the server. Shipping again as of v2.3.2; the ready-made way to reach the API from Java untilsdk/java-nativelands. - REST API: HTTP/JSON API (port 7701) — HTTP reflection of all SDK methods (requires the server).
- gRPC API: Binary protocol (port 7702) — high performance, streaming (requires the server).
Details: ARCHITECTURE.md (diagrams)
Support¶
- GitHub Issues (customer repo):
moreum-tech/MBox - Email:
info@moreum.com - Docs bundle: MBox release assets include
digimr-docs.tar.gz
Translation Contribution¶
If you would like to contribute English translations of the remaining documents (USER_GUIDE.md, SDK_REFERENCE.md, etc.), please contact info@moreum.com. All translations must be reviewed against the authoritative Turkish source.