SDK Java per Italia
corp-merch-java su Maven Central — JDK 17+, async con CompletableFuture, starter Spring Boot per Italia.
Architettura — Installazione e init per Italia
Maven: <dependency><groupId>com.corpmerch</groupId><artifactId>corp-merch-java</artifactId><version>2.x</version></dependency>. Init: CorpMerch cm = CorpMerch.builder().apiKey(System.getenv("CM_KEY")).country("Italia").build();. Instrada tramite l'hub Milano; IVA 22% calcolata lato server. JDK 17+, nessuna dipendenza Kotlin o Scala.
Come integrarlo — Quickstart con CompletableFuture
Sync: Order o = cm.orders().create(OrderCreateParams.builder().idempotencyKey(UUID.randomUUID().toString())...build());. Async: cm.orders().createAsync(params).thenAccept(o -> log.info("id={}", o.id()));. POJO immutabili; Jackson @JsonInclude(NON_NULL). Errori come eccezioni tipizzate che estendono CorpMerchException.
Operatività e casi limite — Spring Boot starter
corp-merch-spring-boot-starter registra CorpMerch come bean configurato da application.yml: corp-merch.api-key, corp-merch.country: Italia. Controller webhook auto-registrato su /webhooks/corpmerch con verifica HMAC. Actuator health indicator espone lo stato del canale SdI. ID di notifica Sistema di Interscambio (SdI) esposti sugli eventi fattura.
Domande frequenti
Versioni JDK?
JDK 17 e 21 in CI. JDK 11 funziona in offline mode ma non è ufficialmente supportato.
Kotlin / Scala?
Java puro — usabile da Kotlin e Scala. Extension idiomatiche Kotlin in modulo companion.
Reactor / RxJava?
Moduli adapter per Project Reactor (Mono/Flux) e RxJava 3 (Single/Observable).
Spring Boot 3?
Sì — starter supporta Spring Boot 3.x. Spring Boot 2.7 sulla SDK 1.x legacy.
IVA 22% e SdI?
country: 'Italia' applica IVA 22% e instrada le fatture via SdI. Health indicator Actuator espone la disponibilità del canale SdI.