I solved it! I needed to add a MergeField parameter in addition to the pre-existing mergeFieldInfo and mergeFields. Since each text field needed it's own MergeField parameter, it had to be placed within the each_pair do loop.
code in my xml builder:
if has?( :fields, Hash )
xml.mergeFieldInfo do
xml.tag! 'ns9:mergeFields' do
fields.each_pair do | key, value |
xml.tag! 'ns9:MergeField' do
xml.tag! 'ns9:fieldName', key.to_s
xml.tag! 'ns9:defaultValue', value.to_s
end
end
end
end
end
working text tag example:
full_name_es_:signer1
what my response looks like:
<mergeFieldInfo><ns9:mergeFields>
<ns9:MergeField><ns9:defaultValue>Kristoph</ns9:defaultValue><ns9:fieldName>full_name</ns9:fieldName></ns9:MergeField>
<ns9:MergeField><ns9:defaultValue>123 Mockingbird Lane</ns9:defaultValue><ns9:fieldName>address_1</ns9:fieldName></ns9:MergeField>
</ns9:mergeFields></mergeFieldInfo>