code: public Map<String, Serializable> getPostFields() throws HelloSignException {
          Map<String, Serializable> fields = new HashMap<String, Serializable>();
          try {
              if (hasName()) {
                  fields.put(APIAPP_NAME, getName());
              }
              if (hasDomain()) {
                  fields.put(APIAPP_DOMAIN, getDomain());
              }
              if (hasCallbackUrl()) {
                  fields.put(APIAPP_CALLBACK_URL, getCallbackUrl());
              }
              if (custom_logo != null && custom_logo.exists()) {
                  fields.put(APIAPP_CUSTOM_LOGO, custom_logo);
              }
              ApiAppOauth oauth = getOauthInfo();
              if (oauth != null) {
                  if (oauth.hasCallbackUrl()) {
                      fields.put("oauth[callback_url]", oauth.getCallbackUrl());
                  }
                  Set<ApiAppOauthScopeType> scopes = oauth.getScopes();
                  if (scopes.size() > 0) {
                      String scopeStr = "";
                      for (ApiAppOauthScopeType type : scopes) {
                          scopeStr += type.toString() + ",";
                      }
                      scopeStr = scopeStr.substring(0, scopeStr.length() - 1);
                      fields.put("oauth[scopes]", scopeStr);
                  }
              }
              if (white_labeling_options != null) {
                  fields.put(WhiteLabelingOptions.WHITE_LABELING_OPTIONS_KEY, white_labeling_options.toString(0));
              }
          } catch (Exception e) {
              throw new HelloSignException(e);
          }
          return fields;
      }
docs: Internal method used to retrieve the necessary POST fields to submit the
  API app to HelloSign.
  
  @return Map
  @throws HelloSignException thrown if there is a problem serializing the
  POST fields.