According to the documentation:
http://code.google.com/p/openesignforms/wiki/ProgrammingGuide#Integration_Interface_%28API%29you just do a regular HTTPS POST of name-value pairs to the 'start URL' for the type of transaction you want to start. The 'start URL' is listed on the transaction templates screen, but fits a simple model of
https://yourdomain.example.com/WEBAPP/S/TransactionTemplateName For full API integration, you can just post to the "production start URL" and then add parameters to indicate your are testing (ESFTEST=Yes) until it's ready to go live, then you can either remove the ESFTEST param or turn it off: ESFTEST=No
http://code.google.com/p/openesignforms/wiki/ProgrammingGuide#Transaction_TemplatesSo, you would post name-values using standard web POST format: firstName=Bob&lastName=Smith&streetAddress=123+Main+Street....
The key is to remember to URL encode all parameter names and values as you assemble the fields to send over, again all standard web interactions.
All data you submit this way will go into the "transaction data record" that you can see in the reports/tran search details page (when you click on a listed transaction). If you post using the same name you used in your documents, they will automatically be updated with your posted values. So if you document field is called "firstName", then when you start with firstName=Bob in the HTTPS POST, the field "firstName" in your document(s) will be set to "Bob". Otherwise, you will need to set the field's "initial value" to something like: ${transaction:first_name} if you HTTPS POST first_name=Bob instead, but the field is still called firstName (and so they don't match and cannot be automatically mapped).
http://code.google.com/p/openesignforms/wiki/ProgrammingGuide#FieldsHope that helps.