code: @NonNull
      public static SourceParams createSofortParams(
              @IntRange(from = 0) long amount,
              @NonNull String returnUrl,
              @NonNull @Size(2) String country,
              @Nullable String statementDescriptor) {
          final SourceParams params = new SourceParams()
                  .setType(Source.SOFORT)
                  .setCurrency(Source.EURO)
                  .setAmount(amount)
                  .setRedirect(createSimpleMap(FIELD_RETURN_URL, returnUrl));
  
          final Map<String, Object> sofortMap = createSimpleMap(FIELD_COUNTRY, country);
          if (statementDescriptor != null) {
              sofortMap.put(FIELD_STATEMENT_DESCRIPTOR, statementDescriptor);
          }
  
          return params
                  .setApiParameterMap(sofortMap);
      }
docs: Create parameters necessary to create a SOFORT 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 returnUrl The URL the customer should be redirected to after the authorization
  process.
  @param country The ISO-3166 2-letter country code of the customer’s bank.
  @param statementDescriptor A custom statement descriptor for the payment (optional).
  @return a {@link SourceParams} object that can be used to create a SOFORT source
  
  @see <a href="https://stripe.com/docs/sources/sofort">https://stripe.com/docs/sources/sofort</a>