code: @NonNull
      public static SourceParams createIdealParams(
              @IntRange(from = 0) long amount,
              @Nullable String name,
              @NonNull String returnUrl,
              @Nullable String statementDescriptor,
              @Nullable String bank) {
          final SourceParams params = new SourceParams()
                  .setType(Source.IDEAL)
                  .setCurrency(Source.EURO)
                  .setAmount(amount)
                  .setRedirect(createSimpleMap(FIELD_RETURN_URL, returnUrl));
          if (name != null) {
              params.setOwner(createSimpleMap(FIELD_NAME, name));
          }
          final Map<String, Object> additionalParamsMap = new HashMap<>();
          if (statementDescriptor != null) {
              additionalParamsMap.put(FIELD_STATEMENT_DESCRIPTOR, statementDescriptor);
          }
          if (bank != null) {
              additionalParamsMap.put(FIELD_BANK, bank);
          }
          if (!additionalParamsMap.isEmpty()) {
              params.setApiParameterMap(additionalParamsMap);
          }
          return params;
      }
docs: Create parameters necessary for creating an iDEAL source.
  
  @param amount A positive integer in the smallest currency unit representing the amount to
  charge the customer (e.g., 1099 for a €10.99 payment).
  @param name The full name of the account holder (optional).
  @param returnUrl The URL the customer should be redirected to after the authorization
  process.
  @param statementDescriptor A custom statement descriptor for the payment (optional).
  @param bank The customer’s bank (optional).
  @return a {@link SourceParams} object that can be used to create an iDEAL source
  
  @see <a href="https://stripe.com/docs/sources/ideal">https://stripe.com/docs/sources/ideal</a>