code: public Map<String, Serializable> getPostFields() throws HelloSignException {
          Map<String, Serializable> fields = super.getPostFields();
          try {
              // Mandatory fields
              List<String> templateIds = getTemplateIds();
              for (int i = 0; i < templateIds.size(); i++) {
                  fields.put(TEMPLATE_IDS + "[" + i + "]", templateIds.get(i));
              }
              Map<String, Signer> signerz = getSigners();
              for (String role : signerz.keySet()) {
                  Signer s = signerz.get(role);
                  fields.put(TEMPLATE_SIGNERS + "[" + role + "][" + TEMPLATE_SIGNERS_EMAIL + "]", s.getEmail());
                  fields.put(TEMPLATE_SIGNERS + "[" + role + "][" + TEMPLATE_SIGNERS_NAME + "]", s.getNameOrRole());
              }
  
              // Optional fields
              if (hasTitle()) {
                  fields.put(REQUEST_TITLE, getTitle());
              }
              if (hasSubject()) {
                  fields.put(REQUEST_SUBJECT, getSubject());
              }
              if (hasMessage()) {
                  fields.put(REQUEST_MESSAGE, getMessage());
              }
              if (hasRedirectUrl()) {
                  fields.put(REQUEST_REDIRECT_URL, getRedirectUrl());
              }
              Map<String, String> ccz = getCCs();
              for (String role : ccz.keySet()) {
                  fields.put(TEMPLATE_CCS + "[" + role + "][" + TEMPLATE_CCS_EMAIL + "]", ccz.get(role));
              }
              if (customFields.size() > 0) {
                  JSONArray array = new JSONArray();
                  for (CustomField f : customFields) {
                      array.put(f.getJSONObject());
                  }
                  fields.put(TEMPLATE_CUSTOM_FIELDS, array.toString());
              }
              if (isTestMode()) {
                  fields.put(REQUEST_TEST_MODE, true);
              }
          } catch (Exception ex) {
              throw new HelloSignException("Could not extract form fields from TemplateSignatureRequest.", ex);
          }
          return fields;
      }
docs: Internal method used to retrieve the necessary POST fields to submit the
  signature request.
  
  @return Map
  @throws HelloSignException thrown if there is a problem parsing the POST
  fields.