@Override public String registerOrder(Order order) { Map<String, Object> metadata = new HashMap<>(); metadata.put("A5LId", order.getId()); Optional<String> method = Optional.of("ideal"); CreatePayment payment = new CreatePayment( method, (double) order.getAmount(), "Area FiftyLAN Ticket", returnUrl + "?order=" + order.getId(), Optional.empty(), metadata); // First try is for IOExceptions coming from the Mollie Client. try { // Create the payment over at Mollie ResponseOrError<Payment> molliePayment = mollie.payments().create(payment); if (molliePayment.getSuccess()) { // All good, update the order updateOrder(order, molliePayment); return molliePayment.getData().getLinks().getPaymentUrl(); } else { // Mollie returned an error. handleMollieError(molliePayment); return null; } } catch (IOException e) { // This indicates the HttpClient encountered some error throw new PaymentException("Could not connect to the Paymentprovider"); } }