Let's assume that we have created a payment method - pm_xxx. When we create a customer we can attache this method as the default payment method to the customer via java code:
CustomerCreateParams.Builder customerCreateParamsBuilder = CustomerCreateParams.builder()
.setEmail(email)
.setPaymentMethod('pm_xxx');
Customer.create(customerCreateParamsBuilder.build());
Unfortunately corresponding api for update customer is not available. So the question is what is preferred way to update customer default payment method in Stripe?
EDIT: Based on @karllekko answer, because My use case is recurring payments so I combine 2 actions: attach customer to payment method:
paymentMethod.attach(PaymentMethodAttachParams.builder().setCustomer(customer.getId()).build());
and make payment method default for customer invoice:
customer.update(CustomerUpdateParams.builder().setInvoiceSettings(CustomerUpdateParams.InvoiceSettings.builder().setDefaultPaymentMethod(token).build()).build());