As of about the end of January 2014, my ofx application which has worked for months is no longer able to retrieve ofx info from Chase credit card (other institutions continue to work correctly).
My request is (roughly):
OFXHEADER:100
DATA:OFXSGML
VERSION:102
SECURITY:NONE
ENCODING:USASCII
CHARSET:1252
COMPRESSION:NONE
OLDFILEUID:NONE
NEWFILEUID:c0774e3d-b28f-4a9e-92f2-6b2ea9bd41a4
<OFX>
<SIGNONMSGSRQV1>
<SONRQ>
<DTCLIENT>20140210030352.150
<USERID>xxx
<USERPASS>xxx
<LANGUAGE>ENG
<FI>
<ORG>B1
<FID>10898
</FI>
<APPID>QWIN
<APPVER>2100
</SONRQ>
</SIGNONMSGSRQV1>
<CREDITCARDMSGSRQV1>
<CCSTMTTRNRQ>
<TRNUID>0cdabbc5-444c-48e0-bd6f-4d24dd827faf
<CCSTMTRQ>
<CCACCTFROM>
<ACCTID>xxx
</CCACCTFROM>
<INCTRAN>
<DTSTART>20140125064000.000
<DTEND>20140210030352.160
<INCLUDE>Y
</INCTRAN>
</CCSTMTRQ>
</CCSTMTTRNRQ>
</CREDITCARDMSGSRQV1>
</OFX>
The "response" I get is that "The underlying connection was closed: An unexpected error occurred on a receive."
The c# code looks like this:
ServicePointManager.Expect100Continue = false;
HttpWebRequest ofxUrl = (HttpWebRequest)WebRequest.Create(acct.FinancialInstitution.Url);
ofxUrl.Method = "POST";
ofxUrl.Accept = "*/*, application/x-ofx";
ofxUrl.ContentType = "application/x-ofx";
ofxUrl.ContentLength = query.Length;
// Write POST data
try
{
using (Stream ps = ofxUrl.GetRequestStream())
{
using (TextWriter output = new StreamWriter(ps))
{
output.Write(query);
}
}
// Get result
HttpWebResponse resp = (HttpWebResponse)ofxUrl.GetResponse();
The GetResponse throws the exception.
I've tried fiddling with things (use NONE for NEWFILEUID, omit DTSTART/DTEND, omit acct #, Expect100Continue true/false, update APPVER, etc), but nothing helps. My uid/pw does work correctly when logging into the Chase website.
I see that ofxhome reports that things are working, but trying OfxGet also fails.
I could use some ideas, clues, pointers, guesses etc. What does ofxhome do for "validation?"