SDK Java para Portugal
corp-merch-java no Maven Central — JDK 17+, async via CompletableFuture, starter Spring Boot para Portugal.
Arquitectura — Instalação e init para Portugal
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("Portugal").build();. Encaminha pelo hub Lisboa; IVA 23% calculado no servidor. JDK 17+, sem dependência Kotlin ou Scala.
Como integrar — Quickstart com 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()));. POJOs imutáveis; Jackson @JsonInclude(NON_NULL). Erros como excepções tipadas que estendem CorpMerchException.
Operação e casos extremos — Starter Spring Boot
corp-merch-spring-boot-starter regista CorpMerch como bean configurado por application.yml: corp-merch.api-key, corp-merch.country: Portugal. Controlador de webhook auto-registado em /webhooks/corpmerch com verificação HMAC. O Actuator health indicator expõe o estado do canal AT. IDs de notificação Portal das Finanças (AT) expostos em eventos de factura.
Perguntas frequentes
Versões JDK?
JDK 17 e 21 em CI. JDK 11 funciona em offline mode mas não é oficialmente suportado.
Kotlin / Scala?
Java puro — utilizável de Kotlin e Scala. Extensões idiomáticas Kotlin num módulo companion.
Reactor / RxJava?
Módulos adaptadores para Project Reactor (Mono/Flux) e RxJava 3 (Single/Observable).
Spring Boot 3?
Sim — o starter suporta Spring Boot 3.x. Spring Boot 2.7 na SDK legacy 1.x.
IVA 23% e AT?
country: 'Portugal' aplica IVA 23% e encaminha facturas via AT. O Actuator health indicator expõe a disponibilidade do canal AT.