<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.tntware.com/donorhub/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Can I programmatically query the the donation data from another application?  If so, how?</title><link>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 SP2 (Debug Build: 40407.4157)</generator><item><title>Can I programmatically query the the donation data from another application?  If so, how?</title><link>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how.aspx</link><pubDate>Thu, 01 Sep 2022 19:32:34 GMT</pubDate><guid isPermaLink="false">51c8af77-2ecd-4ae7-b5f5-4793798b888c:9</guid><dc:creator>Troy Wolbrink</dc:creator><comments>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/comments.aspx</comments><description>Current revision posted to Frequently Asked Questions by Troy Wolbrink on 9/1/2022 7:32:34 PM&lt;br /&gt;
&lt;h2&gt;Can I programmatically query the the donation data from another application?  If so, how?&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: API, Developers&lt;/div&gt;

&lt;h3&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;The&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;DonorHub&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;API&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Approach&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;(&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;preferred)&lt;/span&gt;&lt;p&gt;If you want to &lt;span style="text-decoration: line-through; color: red;"&gt;support&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;largest&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;number&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;of&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;organizations&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;with&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;your&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;app&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;this&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;is&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;best&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;way&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;to&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;go&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;To&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;learn&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;more&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;read&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;:&lt;/span&gt; &lt;span style="font-size:14pt;"&gt;&lt;a href="https://www.tntware.com/donorhub/groups/developers/wiki/how-can-my-fundraising-app-use-the-donorhub-api.aspx"&gt;&lt;strong&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;DonorHub&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;API&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Documentation&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;The&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;SOAP/XML&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Approach&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;(&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;obsolete)&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;DonorHub&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;provides&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;a&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;SOAP/XML&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;end&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;point&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;that&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;other&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;web&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;applications&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;can&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;use&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;to&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;programmatically&lt;/span&gt; query &lt;span style="text-decoration: line-through; color: red;"&gt;donation&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;data&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&amp;nbsp; &lt;span style="text-decoration: line-through; color: red;"&gt;The&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Staff&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Portal&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;which&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;is&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;included&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;with&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;DonorHub&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;gets&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;all&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;of&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;its&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;data&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;exclusively&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;through&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;this&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;web&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;service&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&amp;nbsp; &lt;span style="text-decoration: line-through; color: red;"&gt;If&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;you&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;can&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;see&lt;/span&gt;&amp;nbsp;&lt;span style="text-decoration: line-through; color: red;"&gt;something&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;on&lt;/span&gt; the &lt;span style="text-decoration: line-through; color: red;"&gt;Staff&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Portal&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;you&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;can&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;programmatically&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;retrieve&lt;/span&gt; the &lt;span style="text-decoration: line-through; color: red;"&gt;same&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;donation&lt;/span&gt; information &lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;Here&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;s&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;a&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;demo&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;of&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Staff&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Portal&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:13.6px;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;a style="font-size:13.6px;" href="https://test-staff.mytntware.com/"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;https://test-staff.mytntware.com&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;Here&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;are&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;SOAP&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;web&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;service&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;endpoints&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;where&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;demo&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Staff&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Portal&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;gets&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;its&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;data&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;:&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;a href="https://test-api.mytntware.com/dataqueryservice.asmx"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;https://test-api.mytntware.com/dataqueryservice.asmx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;The&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Staff&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Portal&lt;/span&gt;&amp;nbsp;&lt;span style="text-decoration: line-through; color: red;"&gt;works&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;with&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;instance&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;s&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;single&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;sign&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;on&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;provider&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&amp;nbsp; &lt;span style="text-decoration: line-through; color: red;"&gt;The&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;main&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;SOAP&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;endpoint&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;has&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;a&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;SiteProperties&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;informational&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;record&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;you&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;can&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;request&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;this&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;info&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&amp;nbsp; &lt;span style="text-decoration: line-through; color: red;"&gt;It&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;includes&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;URL&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;to&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;authentication&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;provider&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;under&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;SSOProvider&amp;quot;.&amp;nbsp;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;The&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;main&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;way&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;authentication&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;works&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;with&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;DataQuery&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;service&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;is&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;through&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;a&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;session&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;id&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&amp;nbsp; &lt;span style="text-decoration: line-through; color: red;"&gt;Let&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;me&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;explain&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;:&lt;/span&gt;&amp;nbsp; &lt;span style="text-decoration: line-through; color: red;"&gt;When&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;user&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;comes&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;to&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Staff&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Portal&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;they&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;authenticate&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;via&lt;/span&gt;&amp;nbsp;&lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;authentication&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;provider&lt;/span&gt;&amp;nbsp;&lt;span style="text-decoration: line-through; color: red;"&gt;and&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;gets&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;a&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;service&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;ticket&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&amp;nbsp; &lt;span style="text-decoration: line-through; color: red;"&gt;It&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;passes&lt;/span&gt; in &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;service&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;name&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;and&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;service&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;ticket&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;to&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;SOAP&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;method&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;Login(ServiceName,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;ServiceTicket&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;)&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;which&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;returns&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;a&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;SessionID&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;UserName&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;DonorHub&lt;/span&gt;, &lt;span style="text-decoration: line-through; color: red;"&gt;and&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;UserIsRegistered&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;we&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;offer&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;a&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;developer&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;API&lt;/span&gt;.&amp;nbsp; &lt;span style="text-decoration: line-through; color: red;"&gt;You&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;need&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;to&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;persists&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;SessionID&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;as&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;this&lt;/span&gt; &amp;nbsp; &lt;span style="background: SpringGreen;"&gt;This&lt;/span&gt; is &lt;span style="text-decoration: line-through; color: red;"&gt;used&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;for&lt;/span&gt; all &lt;span style="text-decoration: line-through; color: red;"&gt;subsequent&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;method&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;calls&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&amp;nbsp; &lt;span style="text-decoration: line-through; color: red;"&gt;If&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;user&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;is&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;not&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;registered&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;you&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;need&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;to&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;prompt&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;user&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;for&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;a&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;registration&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;code&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;and&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;submit&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;it&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;to&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;method&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;RegisterUser(SessionID,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;RegistrationCode&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;)&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;until&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;user&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;is&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;registered&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;Trusted&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Portal&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;URL&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Prefixes&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;To&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;ensure&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;that&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;only&lt;/span&gt;&lt;strong&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;trusted&lt;/span&gt;&lt;/strong&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;web&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;applications&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;are&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;querying&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;a&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;user&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;s&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;donation&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;data&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;on&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;their&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;behalf&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;(&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;via&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;explained&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;in&lt;/span&gt; the &lt;span style="text-decoration: line-through; color: red;"&gt;SOAP/XML&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;api)&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;Developers&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;Group&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;at&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;:&lt;/span&gt; &lt;span style="font-size:10pt;"&gt;&lt;a href="https://www.tntware.com/donorhub/groups/developers/wiki/how-can-my-fundraising-app-use-the-donorhub-api.aspx"&gt;&lt;strong&gt;DonorHub &lt;span style="text-decoration: line-through; color: red;"&gt;requires&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;you&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;to&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;maintain&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;a&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;list&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;of&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;URL&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Prefixes&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;.&amp;nbsp;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Contact&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;TntWare&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;to&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;let&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;us&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;know&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;what&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;URL&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;is&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;of&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;your&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;web&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;application&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="text-decoration: line-through; color: red;"&gt;We&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;ll&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;need&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;left&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;most&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;significant&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;part&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;of&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;URL&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;(&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;enough&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;to&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;make&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;it&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;trusted&amp;quot;)&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;and&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;add&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;it&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;to&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;list&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;of&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;trusted&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;prefixes&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;API&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;Documentation&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Can I programmatically query the the donation data from another application?  If so, how?</title><link>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/revision/24.aspx</link><pubDate>Sat, 01 Jun 2019 20:09:39 GMT</pubDate><guid isPermaLink="false">51c8af77-2ecd-4ae7-b5f5-4793798b888c:1218</guid><dc:creator>Troy Wolbrink</dc:creator><comments>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/comments.aspx</comments><description>Revision 24 posted to Frequently Asked Questions by Troy Wolbrink on 6/1/2019 8:09:39 PM&lt;br /&gt;
&lt;h2&gt;Can I programmatically query the the donation data from another application?  If so, how?&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: &lt;span style="text-decoration: line-through; color: red;"&gt;SOAP&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;XML&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; API, &lt;span style="text-decoration: line-through; color: red;"&gt;Web&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Service&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;Developers&lt;/span&gt;&lt;/div&gt;

&lt;h3&gt;The DonorHub API Approach (preferred)&lt;/h3&gt;
&lt;p&gt;If you want to support the largest number of organizations with your app, this is the best way to go.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To learn more, read the: &lt;span style="font-size:14pt;"&gt;&lt;a href="https://www.tntware.com/donorhub/groups/developers/wiki/how-can-my-fundraising-app-use-the-donorhub-api.aspx"&gt;&lt;strong&gt;DonorHub API Documentation&lt;/strong&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;The SOAP/XML Approach (obsolete)&lt;/h3&gt;
&lt;p&gt;DonorHub provides a SOAP/XML end point that other web applications can use to query donation data.&amp;nbsp; The Staff Portal which is included with DonorHub gets all of its data exclusively through this web service.&amp;nbsp; If you can see&amp;nbsp;something on the Staff Portal, you can programmatically retrieve the same information.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a demo of the Staff Portal:&lt;br /&gt;&lt;span style="font-size:13.6px;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;a style="font-size:13.6px;" href="https://test-staff.mytntware.com/"&gt;https://test-staff.mytntware.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here are the SOAP web service endpoints where the demo Staff Portal gets its data:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;a href="https://test-api.mytntware.com/dataqueryservice.asmx"&gt;https://test-api.mytntware.com/dataqueryservice.asmx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The Staff Portal&amp;nbsp;works with the instance&amp;#39;s single sign on provider.&amp;nbsp; The main SOAP endpoint has a SiteProperties informational record you can request this info.&amp;nbsp; It includes the URL to the authentication provider under &amp;quot;SSOProvider&amp;quot;.&amp;nbsp; The main way authentication works with the DataQuery service is through a session id.&amp;nbsp; Let me explain:&amp;nbsp; When the user comes to the Staff Portal, they authenticate via&amp;nbsp;the authentication provider&amp;nbsp;and gets a service ticket.&amp;nbsp; It passes in the service name and service ticket to the SOAP method &amp;quot;Login(ServiceName, ServiceTicket)&amp;quot; which returns a SessionID, UserName, and UserIsRegistered.&amp;nbsp; You need to persists the SessionID as this is used for all subsequent method calls.&amp;nbsp; If the user is not registered, you need to prompt the user for a registration code and submit it to the method &amp;quot;RegisterUser(SessionID, RegistrationCode)&amp;quot; until the user is registered.&lt;/p&gt;
&lt;h4&gt;Trusted Portal URL Prefixes&lt;/h4&gt;
&lt;p&gt;To ensure that only&lt;strong&gt; trusted&lt;/strong&gt; web applications are querying a user&amp;#39;s donation data on their behalf (via the SOAP/XML api), DonorHub requires you to maintain a list of &amp;quot;URL Prefixes&amp;quot;.&amp;nbsp; Contact TntWare to let us know what the URL is of your web application.&amp;nbsp;&amp;nbsp;We&amp;#39;ll need the left most significant part of the URL (enough to make it &amp;quot;trusted&amp;quot;) and add it to the list of trusted prefixes.&lt;/p&gt;
&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;</description></item><item><title>Can I programmatically query the the donation data from another application?  If so, how?</title><link>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/revision/23.aspx</link><pubDate>Sat, 01 Jun 2019 20:03:16 GMT</pubDate><guid isPermaLink="false">51c8af77-2ecd-4ae7-b5f5-4793798b888c:200</guid><dc:creator>Troy Wolbrink</dc:creator><comments>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/comments.aspx</comments><description>Revision 23 posted to Frequently Asked Questions by Troy Wolbrink on 6/1/2019 8:03:16 PM&lt;br /&gt;
&lt;h2&gt;Can I programmatically query the the donation data from another application?  If so, how?&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: SOAP, XML, API, Web Service&lt;/div&gt;

&lt;h3&gt;The DonorHub API Approach (preferred)&lt;/h3&gt;
&lt;p&gt;If you want to support the largest number of organizations with your app, this is the best way to go.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To learn more, read the: &lt;span style="font-size:14pt;"&gt;&lt;a href="https://www.tntware.com/donorhub/groups/developers/wiki/how-can-my-fundraising-app-use-the-donorhub-api.aspx"&gt;&lt;strong&gt;DonorHub API Documentation&lt;/strong&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;The SOAP/XML Approach &lt;span style="background: SpringGreen;"&gt;(&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;obsolete)&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;DonorHub provides a SOAP/XML end point that other web applications can use to query donation data.&amp;nbsp; The Staff Portal which is included with DonorHub gets all of its data exclusively through this web service.&amp;nbsp; If you can see&amp;nbsp;something on the Staff Portal, you can programmatically retrieve the same information.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a demo of the Staff Portal:&lt;br /&gt;&lt;span style="font-size:13.6px;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;a style="font-size:13.6px;" href="https://test-staff.mytntware.com/"&gt;https://test-staff.mytntware.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here are the SOAP web service endpoints where the demo Staff Portal gets its data:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;a href="https://test-api.mytntware.com/dataqueryservice.asmx"&gt;https://test-api.mytntware.com/dataqueryservice.asmx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The Staff Portal&amp;nbsp;works with the instance&amp;#39;s single sign on provider.&amp;nbsp; The main SOAP endpoint has a SiteProperties informational record you can request this info.&amp;nbsp; It includes the URL to the authentication provider under &amp;quot;SSOProvider&amp;quot;.&amp;nbsp; The main way authentication works with the DataQuery service is through a session id.&amp;nbsp; Let me explain:&amp;nbsp; When the user comes to the Staff Portal, they authenticate via&amp;nbsp;the authentication provider&amp;nbsp;and gets a service ticket.&amp;nbsp; It passes in the service name and service ticket to the SOAP method &amp;quot;Login(ServiceName, ServiceTicket)&amp;quot; which returns a SessionID, UserName, and UserIsRegistered.&amp;nbsp; You need to persists the SessionID as this is used for all subsequent method calls.&amp;nbsp; If the user is not registered, you need to prompt the user for a registration code and submit it to the method &amp;quot;RegisterUser(SessionID, RegistrationCode)&amp;quot; until the user is registered.&lt;/p&gt;
&lt;h4&gt;Trusted Portal URL Prefixes&lt;/h4&gt;
&lt;p&gt;To ensure that only&lt;strong&gt; trusted&lt;/strong&gt; web applications are querying a user&amp;#39;s donation data on their behalf (via the SOAP/XML api), DonorHub requires you to maintain a list of &amp;quot;URL Prefixes&amp;quot;.&amp;nbsp; Contact TntWare to let us know what the URL is of your web application.&amp;nbsp;&amp;nbsp;We&amp;#39;ll need the left most significant part of the URL (enough to make it &amp;quot;trusted&amp;quot;) and add it to the list of trusted prefixes.&lt;/p&gt;
&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;</description></item><item><title>Can I programmatically query the the donation data from another application?  If so, how?</title><link>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/revision/22.aspx</link><pubDate>Sat, 01 Jun 2019 20:03:05 GMT</pubDate><guid isPermaLink="false">51c8af77-2ecd-4ae7-b5f5-4793798b888c:189</guid><dc:creator>Troy Wolbrink</dc:creator><comments>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/comments.aspx</comments><description>Revision 22 posted to Frequently Asked Questions by Troy Wolbrink on 6/1/2019 8:03:05 PM&lt;br /&gt;
&lt;h2&gt;Can I programmatically query the the donation data from another application?  If so, how?&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: SOAP, XML, API, Web Service&lt;/div&gt;

&lt;h3&gt;The DonorHub API Approach (preferred)&lt;/h3&gt;
&lt;p&gt;If you want to support the largest number of organizations with your app, this is the best way to go.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To learn more, read the: &lt;span style="font-size:14pt;"&gt;&lt;a href="https://www.tntware.com/donorhub/groups/developers/wiki/how-can-my-fundraising-app-use-the-donorhub-api.aspx"&gt;&lt;strong&gt;DonorHub API Documentation&lt;/strong&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;The SOAP/XML Approach&lt;/h3&gt;
&lt;p&gt;DonorHub provides a SOAP/XML end point that other web applications can use to query donation data.&amp;nbsp; The Staff Portal which is included with DonorHub gets all of its data exclusively through this web service.&amp;nbsp; If you can see&amp;nbsp;something on the Staff Portal, you can programmatically retrieve the same information.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a demo of the Staff Portal:&lt;br /&gt;&lt;a href="https://www.mytntware.com/dataserver/test/staffportal/default.aspx"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;https://www.mytntware.com/dataserver/test/staffportal/default.aspx&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:13.6px;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;a style="font-size:13.6px;" href="https://test-staff.mytntware.com/"&gt;&lt;span style="background: SpringGreen;"&gt;https://test-staff.mytntware.com&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here are &amp;nbsp;&lt;span style="text-decoration: line-through; color: red;"&gt;demos&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;of&lt;/span&gt; the SOAP web service endpoints where the &lt;span style="background: SpringGreen;"&gt;demo&lt;/span&gt; Staff Portal gets its data:&lt;br /&gt;&lt;a href="https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice3.asmx"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice3.asmx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;You&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;ll&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;notice&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;that&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;dataquery&amp;quot;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;folder&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;is&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;next&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;to&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;staffportal&amp;quot;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;folder&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&amp;nbsp; &lt;span style="text-decoration: line-through; color: red;"&gt;If&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;you&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;have&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;a&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Staff&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Portal&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;url&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;replace&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;staffportal/*&amp;quot;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;in&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;your&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;url&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;with&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;dataquery/dataqueryservice2.asmx&amp;quot;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;and&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;you&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;ll&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;have&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;your&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;own&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;SOAP&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;endpoint&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;a href="https://test-api.mytntware.com/dataqueryservice.asmx"&gt;&lt;span style="background: SpringGreen;"&gt;https://test-api.mytntware.com/dataqueryservice.asmx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The Staff Portal&amp;nbsp;works with &lt;span style="text-decoration: line-through; color: red;"&gt;a&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;the&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;instance&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;s&lt;/span&gt; single sign on provider.&amp;nbsp; The main SOAP endpoint has a SiteProperties informational record you can request &lt;span style="background: SpringGreen;"&gt;this&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;info&lt;/span&gt;.&amp;nbsp; It includes the URL to the authentication provider under &amp;quot;SSOProvider&amp;quot;.&amp;nbsp; The main way authentication works with the DataQuery service is through a session id.&amp;nbsp; Let me explain:&amp;nbsp; When the user comes to the Staff Portal, &lt;span style="text-decoration: line-through; color: red;"&gt;it&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;authenticates&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;they&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;authenticate&lt;/span&gt; via&amp;nbsp;the authentication provider&amp;nbsp;and gets a service ticket.&amp;nbsp; It passes in the service name and service ticket to the SOAP method &amp;quot;Login(ServiceName, ServiceTicket)&amp;quot; which returns a SessionID, UserName, and UserIsRegistered.&amp;nbsp; You need to persists the SessionID as this is used for all subsequent method calls.&amp;nbsp; If the user is not registered, you need to prompt the user for a registration code and submit it to the method &amp;quot;RegisterUser(SessionID, RegistrationCode)&amp;quot; until the user is registered.&lt;/p&gt;
&lt;h4&gt;Trusted Portal URL Prefixes&lt;/h4&gt;
&lt;p&gt;To ensure that only&lt;strong&gt; trusted&lt;/strong&gt; web applications are querying a user&amp;#39;s donation data on their behalf (via the SOAP/XML api), DonorHub requires you to maintain a list of &amp;quot;URL Prefixes&amp;quot;.&amp;nbsp; Contact TntWare to let us know what the URL is of your web application.&amp;nbsp;&amp;nbsp;We&amp;#39;ll need the left most significant part of the URL (enough to make it &amp;quot;trusted&amp;quot;) and add it to the list of trusted prefixes.&lt;/p&gt;
&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;</description></item><item><title>Can I programmatically query the the donation data from another application?  If so, how?</title><link>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/revision/21.aspx</link><pubDate>Sat, 01 Jun 2019 20:00:40 GMT</pubDate><guid isPermaLink="false">51c8af77-2ecd-4ae7-b5f5-4793798b888c:188</guid><dc:creator>Troy Wolbrink</dc:creator><comments>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/comments.aspx</comments><description>Revision 21 posted to Frequently Asked Questions by Troy Wolbrink on 6/1/2019 8:00:40 PM&lt;br /&gt;
&lt;h2&gt;Can I programmatically query the the donation data from another application?  If so, how?&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: SOAP, XML, API, Web Service&lt;/div&gt;

&lt;h3&gt;The DonorHub API Approach &lt;span style="background: SpringGreen;"&gt;(&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;preferred)&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;If you want to support the largest number of organizations with your app, this is the best way to go.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To learn more, read the: &lt;span style="font-size:14pt;"&gt;&lt;a href="https://www.tntware.com/donorhub/groups/developers/wiki/how-can-my-fundraising-app-use-the-donorhub-api.aspx"&gt;&lt;strong&gt;DonorHub API Documentation&lt;/strong&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;The SOAP/XML Approach&lt;/h3&gt;
&lt;p&gt;DonorHub provides a SOAP/XML end point that other web applications can use to query donation data.&amp;nbsp; The Staff Portal which is included with DonorHub gets all of its data exclusively through this web service.&amp;nbsp; If you can see&amp;nbsp;something on the Staff Portal, you can programmatically retrieve the same information.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a demo of the Staff Portal:&lt;br /&gt;&lt;a href="https://www.mytntware.com/dataserver/test/staffportal/default.aspx"&gt;https://www.mytntware.com/dataserver/test/staffportal/default.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here are&amp;nbsp;demos of the SOAP web service endpoints where the Staff Portal gets its data:&lt;br /&gt;&lt;a href="https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice3.asmx"&gt;https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice3.asmx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;You&amp;#39;ll notice that the &amp;quot;dataquery&amp;quot; folder is next to the &amp;quot;staffportal&amp;quot; folder.&amp;nbsp; If you have a Staff Portal, url, replace &amp;quot;staffportal/*&amp;quot; in your url with &amp;quot;dataquery/dataqueryservice2.asmx&amp;quot; and you&amp;#39;ll have your own SOAP endpoint.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The Staff Portal&amp;nbsp;works with a single sign on provider.&amp;nbsp; The main SOAP endpoint has a SiteProperties informational record you can request.&amp;nbsp; It includes the URL to the authentication provider under &amp;quot;SSOProvider&amp;quot;.&amp;nbsp; The main way authentication works with the DataQuery service is through a session id.&amp;nbsp; Let me explain:&amp;nbsp; When the user comes to the Staff Portal, it authenticates via&amp;nbsp;the authentication provider&amp;nbsp;and gets a service ticket.&amp;nbsp; It passes in the service name and service ticket to the SOAP method &amp;quot;Login(ServiceName, ServiceTicket)&amp;quot; which returns a SessionID, UserName, and UserIsRegistered.&amp;nbsp; You need to persists the SessionID as this is used for all subsequent method calls.&amp;nbsp; If the user is not registered, you need to prompt the user for a registration code and submit it to the method &amp;quot;RegisterUser(SessionID, RegistrationCode)&amp;quot; until the user is registered.&lt;/p&gt;
&lt;h4&gt;Trusted Portal URL Prefixes&lt;/h4&gt;
&lt;p&gt;To ensure that only&lt;strong&gt; trusted&lt;/strong&gt; web applications are querying a user&amp;#39;s donation data on their behalf (via the SOAP/XML api), DonorHub &lt;span style="text-decoration: line-through; color: red;"&gt;Lite&lt;/span&gt; requires you to maintain a list of &amp;quot;URL Prefixes&amp;quot;.&amp;nbsp; &lt;span style="text-decoration: line-through; color: red;"&gt;This&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;is&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;available&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;under&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;:&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Tools&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;|&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;System&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Setup&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;|&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Portal&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&amp;nbsp; &lt;span style="text-decoration: line-through; color: red;"&gt;Here&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;you&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;ll&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;notice&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;a&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;link&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;to&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;(edit&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;prefix&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;list&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;)&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;and&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;a&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;link&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;Contact&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;TntWare&lt;/span&gt; to &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;(view&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;log&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;)&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;.&amp;nbsp;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;When&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;you&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;re&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;first&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;getting&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;started&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;let&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;us&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;know&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;what&lt;/span&gt; the &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;view&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;log&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;option&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;URL&lt;/span&gt; is &lt;span style="text-decoration: line-through; color: red;"&gt;handy&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;as&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;you&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;can&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;see&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;exactly&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;what&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;s&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;being&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;attempted&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;(&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;but&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;not&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;accepted&amp;quot;).&amp;nbsp;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;If&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;you&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;see&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;of&lt;/span&gt; your &lt;span style="text-decoration: line-through; color: red;"&gt;portal&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;in&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;log&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;copy&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;web&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;application&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;.&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;span style="background: SpringGreen;"&gt;We&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;ll&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;need&lt;/span&gt; the left most significant part of the URL (enough to make it &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;trusted&amp;quot;&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;&amp;quot;trusted&amp;quot;)&lt;/span&gt; and add it to the list of trusted prefixes.&lt;/p&gt;
&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;</description></item><item><title>Can I programmatically query the the donation data from another application?  If so, how?</title><link>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/revision/20.aspx</link><pubDate>Fri, 05 Jan 2018 18:50:05 GMT</pubDate><guid isPermaLink="false">51c8af77-2ecd-4ae7-b5f5-4793798b888c:187</guid><dc:creator>Troy Wolbrink</dc:creator><comments>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/comments.aspx</comments><description>Revision 20 posted to Frequently Asked Questions by Troy Wolbrink on 1/5/2018 6:50:05 PM&lt;br /&gt;
&lt;h2&gt;Can I programmatically query the the donation data from another application?  If so, how?&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: SOAP, XML, API, Web Service&lt;/div&gt;

&lt;h3&gt;The DonorHub API Approach&lt;/h3&gt;
&lt;p&gt;If you want to support the largest number of organizations with your app, this is the best way to go.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To learn more, read the: &lt;a href="/donorhub/groups/developers/wiki/how-can-my-fundraising-app-use-the-donorhub-api.aspx"&gt;&lt;strong&gt;DonorHub API Documentation&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;The SOAP/XML Approach&lt;/h3&gt;
&lt;p&gt;DonorHub provides a SOAP/XML end point that other web applications can use to query donation data.&amp;nbsp; The Staff Portal which is included with DonorHub gets all of its data exclusively through this web service.&amp;nbsp; If you can see&amp;nbsp;something on the Staff Portal, you can programmatically retrieve the same information.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a demo of the Staff Portal:&lt;br /&gt;&lt;a href="https://www.mytntware.com/dataserver/test/staffportal/default.aspx"&gt;https://www.mytntware.com/dataserver/test/staffportal/default.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here are&amp;nbsp;demos of the SOAP web service endpoints where the Staff Portal gets its data:&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&lt;a href="https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice3.a&lt;/span&gt;&lt;br /&gt;&lt;a href="https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice3.asmx"&gt;https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice3.asmx&lt;/a&gt;&lt;a href="https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;smx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;You&amp;#39;ll notice that the &amp;quot;dataquery&amp;quot; folder is next to the &amp;quot;staffportal&amp;quot; folder.&amp;nbsp; If you have a Staff Portal, url, replace &amp;quot;staffportal/*&amp;quot; in your url with &amp;quot;dataquery/dataqueryservice2.asmx&amp;quot; and you&amp;#39;ll have your own SOAP endpoint.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The Staff Portal&amp;nbsp;works with a single sign on provider.&amp;nbsp; The main SOAP endpoint has a SiteProperties informational record you can request.&amp;nbsp; It includes the URL to the authentication provider under &amp;quot;SSOProvider&amp;quot;.&amp;nbsp; The main way authentication works with the DataQuery service is through a session id.&amp;nbsp; Let me explain:&amp;nbsp; When the user comes to the Staff Portal, it authenticates via&amp;nbsp;the authentication provider&amp;nbsp;and gets a service ticket.&amp;nbsp; It passes in the service name and service ticket to the SOAP method &amp;quot;Login(ServiceName, ServiceTicket)&amp;quot; which returns a SessionID, UserName, and UserIsRegistered.&amp;nbsp; You need to persists the SessionID as this is used for all subsequent method calls.&amp;nbsp; If the user is not registered, you need to prompt the user for a registration code and submit it to the method &amp;quot;RegisterUser(SessionID, RegistrationCode)&amp;quot; until the user is registered.&lt;/p&gt;
&lt;h4&gt;Trusted Portal URL Prefixes&lt;/h4&gt;
&lt;p&gt;To ensure that only&lt;strong&gt; trusted&lt;/strong&gt; web applications are querying a user&amp;#39;s donation data on their behalf (via the SOAP/XML api), DonorHub Lite requires you to maintain a list of &amp;quot;URL Prefixes&amp;quot;.&amp;nbsp; This is available under: Tools | System Setup | Portal.&amp;nbsp; Here you&amp;#39;ll notice a link to &amp;quot;(edit prefix list)&amp;quot; and a link to &amp;quot;(view log)&amp;quot;.&amp;nbsp; When you&amp;#39;re first getting started the &amp;quot;view log&amp;quot; option is handy as you can see exactly what&amp;#39;s being attempted (but not &amp;quot;accepted&amp;quot;).&amp;nbsp; If you see your portal in the log, copy the left most significant part of the URL (enough to make it &amp;quot;trusted&amp;quot; and add it to the list of trusted prefixes.&lt;/p&gt;
&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;</description></item><item><title>Can I programmatically query the the donation data from another application?  If so, how?</title><link>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/revision/19.aspx</link><pubDate>Fri, 05 Jan 2018 18:49:25 GMT</pubDate><guid isPermaLink="false">51c8af77-2ecd-4ae7-b5f5-4793798b888c:153</guid><dc:creator>Troy Wolbrink</dc:creator><comments>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/comments.aspx</comments><description>Revision 19 posted to Frequently Asked Questions by Troy Wolbrink on 1/5/2018 6:49:25 PM&lt;br /&gt;
&lt;h2&gt;Can I programmatically query the the donation data from another application?  If so, how?&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: SOAP, XML, API, Web Service&lt;/div&gt;

&lt;h3&gt;The DonorHub API Approach&lt;/h3&gt;
&lt;p&gt;If you want to support the largest number of organizations with your app, this is the best way to go.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To learn more, read the: &lt;a href="/donorhub/groups/developers/wiki/how-can-my-fundraising-app-use-the-donorhub-api.aspx"&gt;&lt;strong&gt;DonorHub API Documentation&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;The SOAP/XML Approach&lt;/h3&gt;
&lt;p&gt;DonorHub provides a SOAP/XML end point that other web applications can use to query donation data.&amp;nbsp; The Staff Portal which is included with DonorHub gets all of its data exclusively through this web service.&amp;nbsp; If you can see&amp;nbsp;something on the Staff Portal, you can programmatically retrieve the same information.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a demo of the Staff Portal:&lt;br /&gt;&lt;a href="https://www.mytntware.com/dataserver/test/staffportal/default.aspx"&gt;https://www.mytntware.com/dataserver/test/staffportal/default.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here are&amp;nbsp;demos of the SOAP web service endpoints where the Staff Portal gets its data:&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&lt;a href="https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx"&gt;&lt;span style="background: SpringGreen;"&gt;https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice3.a&lt;/span&gt;&lt;/a&gt;&lt;a href="https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice3.asmx"&gt;https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice3.asmx&lt;/a&gt;&lt;a href="https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx"&gt;&lt;span style="background: SpringGreen;"&gt;smx&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;You&amp;#39;ll notice that the &amp;quot;dataquery&amp;quot; folder is next to the &amp;quot;staffportal&amp;quot; folder.&amp;nbsp; If you have a Staff Portal, url, replace &amp;quot;staffportal/*&amp;quot; in your url with &amp;quot;dataquery/dataqueryservice2.asmx&amp;quot; and you&amp;#39;ll have your own SOAP endpoint.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The Staff Portal&amp;nbsp;works with a single sign on provider.&amp;nbsp; The main SOAP endpoint has a SiteProperties informational record you can request.&amp;nbsp; It includes the URL to the authentication provider under &amp;quot;SSOProvider&amp;quot;.&amp;nbsp; The main way authentication works with the DataQuery service is through a session id.&amp;nbsp; Let me explain:&amp;nbsp; When the user comes to the Staff Portal, it authenticates via&amp;nbsp;the authentication provider&amp;nbsp;and gets a service ticket.&amp;nbsp; It passes in the service name and service ticket to the SOAP method &amp;quot;Login(ServiceName, ServiceTicket)&amp;quot; which returns a SessionID, UserName, and UserIsRegistered.&amp;nbsp; You need to persists the SessionID as this is used for all subsequent method calls.&amp;nbsp; If the user is not registered, you need to prompt the user for a registration code and submit it to the method &amp;quot;RegisterUser(SessionID, RegistrationCode)&amp;quot; until the user is registered.&lt;/p&gt;
&lt;h4&gt;Trusted Portal URL Prefixes&lt;/h4&gt;
&lt;p&gt;To ensure that only&lt;strong&gt; trusted&lt;/strong&gt; web applications are querying a user&amp;#39;s donation data on their behalf (via the SOAP/XML api), DonorHub Lite requires you to maintain a list of &amp;quot;URL Prefixes&amp;quot;.&amp;nbsp; This is available under: Tools | System Setup | Portal.&amp;nbsp; Here you&amp;#39;ll notice a link to &amp;quot;(edit prefix list)&amp;quot; and a link to &amp;quot;(view log)&amp;quot;.&amp;nbsp; When you&amp;#39;re first getting started the &amp;quot;view log&amp;quot; option is handy as you can see exactly what&amp;#39;s being attempted (but not &amp;quot;accepted&amp;quot;).&amp;nbsp; If you see your portal in the log, copy the left most significant part of the URL (enough to make it &amp;quot;trusted&amp;quot; and add it to the list of trusted prefixes.&lt;/p&gt;
&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;</description></item><item><title>Can I programmatically query the the donation data from another application?  If so, how?</title><link>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/revision/18.aspx</link><pubDate>Fri, 05 Jan 2018 18:48:55 GMT</pubDate><guid isPermaLink="false">51c8af77-2ecd-4ae7-b5f5-4793798b888c:152</guid><dc:creator>Troy Wolbrink</dc:creator><comments>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/comments.aspx</comments><description>Revision 18 posted to Frequently Asked Questions by Troy Wolbrink on 1/5/2018 6:48:55 PM&lt;br /&gt;
&lt;h2&gt;Can I programmatically query the the donation data from another application?  If so, how?&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: SOAP, XML, API, Web Service&lt;/div&gt;

&lt;h3&gt;The DonorHub API Approach&lt;/h3&gt;
&lt;p&gt;If you want to support the largest number of organizations with your app, this is the best way to go.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To learn more, read the: &lt;a href="/donorhub/groups/developers/wiki/how-can-my-fundraising-app-use-the-donorhub-api.aspx"&gt;&lt;strong&gt;DonorHub API Documentation&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;The SOAP/XML Approach&lt;/h3&gt;
&lt;p&gt;DonorHub provides a SOAP/XML end point that other web applications can use to query donation data.&amp;nbsp; The Staff Portal which is included with DonorHub gets all of its data exclusively through this web service.&amp;nbsp; If you can see&amp;nbsp;something on the Staff Portal, you can programmatically retrieve the same information.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a demo of the Staff Portal:&lt;br /&gt;&lt;a href="https://www.mytntware.com/dataserver/test/staffportal/default.aspx"&gt;https://www.mytntware.com/dataserver/test/staffportal/default.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here are&amp;nbsp;demos of the SOAP web service endpoints where the Staff Portal gets its data:&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&lt;a href="https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&lt;a href="https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx"&gt;&lt;span style="background: SpringGreen;"&gt;https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice3.asmx&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;You&amp;#39;ll notice that the &amp;quot;dataquery&amp;quot; folder is next to the &amp;quot;staffportal&amp;quot; folder.&amp;nbsp; If you have a Staff Portal, url, replace &amp;quot;staffportal/*&amp;quot; in your url with &amp;quot;dataquery/dataqueryservice2.asmx&amp;quot; and you&amp;#39;ll have your own SOAP endpoint.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The Staff Portal&amp;nbsp;works with a single sign on provider.&amp;nbsp; The main SOAP endpoint has a SiteProperties informational record you can request.&amp;nbsp; It includes the URL to the authentication provider under &amp;quot;SSOProvider&amp;quot;.&amp;nbsp; The main way authentication works with the DataQuery service is through a session id.&amp;nbsp; Let me explain:&amp;nbsp; When the user comes to the Staff Portal, it authenticates via&amp;nbsp;the authentication provider&amp;nbsp;and gets a service ticket.&amp;nbsp; It passes in the service name and service ticket to the SOAP method &amp;quot;Login(ServiceName, ServiceTicket)&amp;quot; which returns a SessionID, UserName, and UserIsRegistered.&amp;nbsp; You need to persists the SessionID as this is used for all subsequent method calls.&amp;nbsp; If the user is not registered, you need to prompt the user for a registration code and submit it to the method &amp;quot;RegisterUser(SessionID, RegistrationCode)&amp;quot; until the user is registered.&lt;/p&gt;
&lt;h4&gt;Trusted Portal URL Prefixes&lt;/h4&gt;
&lt;p&gt;To ensure that only&lt;strong&gt; trusted&lt;/strong&gt; web applications are querying a user&amp;#39;s donation data on their behalf (via the SOAP/XML api), DonorHub Lite requires you to maintain a list of &amp;quot;URL Prefixes&amp;quot;.&amp;nbsp; This is available under: Tools | System Setup | Portal.&amp;nbsp; Here you&amp;#39;ll notice a link to &amp;quot;(edit prefix list)&amp;quot; and a link to &amp;quot;(view log)&amp;quot;.&amp;nbsp; When you&amp;#39;re first getting started the &amp;quot;view log&amp;quot; option is handy as you can see exactly what&amp;#39;s being attempted (but not &amp;quot;accepted&amp;quot;).&amp;nbsp; If you see your portal in the log, copy the left most significant part of the URL (enough to make it &amp;quot;trusted&amp;quot; and add it to the list of trusted prefixes.&lt;/p&gt;
&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;</description></item><item><title>Can I programmatically query the the donation data from another application?  If so, how?</title><link>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/revision/17.aspx</link><pubDate>Mon, 18 Sep 2017 20:11:16 GMT</pubDate><guid isPermaLink="false">51c8af77-2ecd-4ae7-b5f5-4793798b888c:151</guid><dc:creator>Troy Wolbrink</dc:creator><comments>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/comments.aspx</comments><description>Revision 17 posted to Frequently Asked Questions by Troy Wolbrink on 9/18/2017 8:11:16 PM&lt;br /&gt;
&lt;h2&gt;Can I programmatically query the the donation data from another application?  If so, how?&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: SOAP, XML, API, Web Service&lt;/div&gt;

&lt;h3&gt;The DonorHub API Approach&lt;/h3&gt;
&lt;p&gt;If you want to support the largest number of organizations with your app, this is the best way to go.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;To learn more, read the: &lt;a href="/donorhub/groups/developers/wiki/how-can-my-fundraising-app-use-the-donorhub-api.aspx"&gt;&lt;strong&gt;DonorHub API Documentation&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;The SOAP/XML Approach&lt;/h3&gt;
&lt;p&gt;DonorHub provides a SOAP/XML end point that other web applications can use to query donation data.&amp;nbsp; The Staff Portal which is included with DonorHub gets all of its data exclusively through this web service.&amp;nbsp; If you can see&amp;nbsp;something on the Staff Portal, you can programmatically retrieve the same information.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a demo of the Staff Portal:&lt;br /&gt;&lt;a href="https://www.mytntware.com/dataserver/test/staffportal/default.aspx"&gt;https://www.mytntware.com/dataserver/test/staffportal/default.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here are&amp;nbsp;demos of the SOAP web service endpoints where the Staff Portal gets its data:&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&lt;a href="https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx"&gt;https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;You&amp;#39;ll notice that the &amp;quot;dataquery&amp;quot; folder is next to the &amp;quot;staffportal&amp;quot; folder.&amp;nbsp; If you have a Staff Portal, url, replace &amp;quot;staffportal/*&amp;quot; in your url with &amp;quot;dataquery/dataqueryservice2.asmx&amp;quot; and you&amp;#39;ll have your own SOAP endpoint.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The Staff Portal&amp;nbsp;works with a single sign on provider.&amp;nbsp; The main SOAP endpoint has a SiteProperties informational record you can request.&amp;nbsp; It includes the URL to the authentication provider under &amp;quot;SSOProvider&amp;quot;.&amp;nbsp; The main way authentication works with the DataQuery service is through a session id.&amp;nbsp; Let me explain:&amp;nbsp; When the user comes to the Staff Portal, it authenticates via&amp;nbsp;the authentication provider&amp;nbsp;and gets a service ticket.&amp;nbsp; It passes in the service name and service ticket to the SOAP method &amp;quot;Login(ServiceName, ServiceTicket)&amp;quot; which returns a SessionID, UserName, and UserIsRegistered.&amp;nbsp; You need to persists the SessionID as this is used for all subsequent method calls.&amp;nbsp; If the user is not registered, you need to prompt the user for a registration code and submit it to the method &amp;quot;RegisterUser(SessionID, RegistrationCode)&amp;quot; until the user is registered.&lt;/p&gt;
&lt;h4&gt;Trusted Portal URL Prefixes&lt;/h4&gt;
&lt;p&gt;To ensure that only&lt;strong&gt; trusted&lt;/strong&gt; web applications are querying a user&amp;#39;s donation data on their behalf (via the SOAP/XML api), DonorHub Lite requires you to maintain a list of &amp;quot;URL Prefixes&amp;quot;.&amp;nbsp; This is available under: Tools | System Setup | Portal.&amp;nbsp; Here you&amp;#39;ll notice a link to &amp;quot;(edit prefix list)&amp;quot; and a link to &amp;quot;(view log)&amp;quot;.&amp;nbsp; When you&amp;#39;re first getting started the &amp;quot;view log&amp;quot; option is handy as you can see exactly what&amp;#39;s being attempted (but not &amp;quot;accepted&amp;quot;).&amp;nbsp; If you see your portal in the log, copy the left most significant part of the URL (enough to make it &amp;quot;trusted&amp;quot; and add it to the list of trusted prefixes.&lt;/p&gt;
&lt;h3&gt;&lt;/h3&gt;</description></item><item><title>Can I programmatically query the the donation data from another application?  If so, how?</title><link>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/revision/16.aspx</link><pubDate>Mon, 18 Sep 2017 20:10:50 GMT</pubDate><guid isPermaLink="false">51c8af77-2ecd-4ae7-b5f5-4793798b888c:139</guid><dc:creator>Troy Wolbrink</dc:creator><comments>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/comments.aspx</comments><description>Revision 16 posted to Frequently Asked Questions by Troy Wolbrink on 9/18/2017 8:10:50 PM&lt;br /&gt;
&lt;h2&gt;Can I programmatically query the the donation data from another application?  If so, how?&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: SOAP, XML, API, Web Service&lt;/div&gt;

&lt;h3&gt;The DonorHub API Approach&lt;/h3&gt;
&lt;p&gt;If you want to support the largest number of organizations with your app, this is the best way to go.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;To learn more&lt;span style="text-decoration: line-through; color: red;"&gt;:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="text-decoration: line-through; color: red;"&gt;Read&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;,&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;read&lt;/span&gt; the: &lt;a href="/donorhub/groups/developers/wiki/how-can-my-fundraising-app-use-the-donorhub-api.aspx"&gt;&lt;strong&gt;DonorHub API Documentation&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;The SOAP/XML Approach&lt;/h3&gt;
&lt;p&gt;DonorHub provides a SOAP/XML end point that other web applications can use to query donation data.&amp;nbsp; The Staff Portal which is included with DonorHub gets all of its data exclusively through this web service.&amp;nbsp; If you can see&amp;nbsp;something on the Staff Portal, you can programmatically retrieve the same information.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a demo of the Staff Portal:&lt;br /&gt;&lt;a href="https://www.mytntware.com/dataserver/test/staffportal/default.aspx"&gt;https://www.mytntware.com/dataserver/test/staffportal/default.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here are&amp;nbsp;demos of the SOAP web service endpoints where the Staff Portal gets its data:&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&lt;a href="https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx"&gt;https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;You&amp;#39;ll notice that the &amp;quot;dataquery&amp;quot; folder is next to the &amp;quot;staffportal&amp;quot; folder.&amp;nbsp; If you have a Staff Portal, url, replace &amp;quot;staffportal/*&amp;quot; in your url with &amp;quot;dataquery/dataqueryservice2.asmx&amp;quot; and you&amp;#39;ll have your own SOAP endpoint.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The Staff Portal&amp;nbsp;works with a single sign on provider.&amp;nbsp; The main SOAP endpoint has a SiteProperties informational record you can request.&amp;nbsp; It includes the URL to the authentication provider under &amp;quot;SSOProvider&amp;quot;.&amp;nbsp; The main way authentication works with the DataQuery service is through a session id.&amp;nbsp; Let me explain:&amp;nbsp; When the user comes to the Staff Portal, it authenticates via&amp;nbsp;the authentication provider&amp;nbsp;and gets a service ticket.&amp;nbsp; It passes in the service name and service ticket to the SOAP method &amp;quot;Login(ServiceName, ServiceTicket)&amp;quot; which returns a SessionID, UserName, and UserIsRegistered.&amp;nbsp; You need to persists the SessionID as this is used for all subsequent method calls.&amp;nbsp; If the user is not registered, you need to prompt the user for a registration code and submit it to the method &amp;quot;RegisterUser(SessionID, RegistrationCode)&amp;quot; until the user is registered.&lt;/p&gt;
&lt;h4&gt;Trusted Portal URL Prefixes&lt;/h4&gt;
&lt;p&gt;To ensure that only&lt;strong&gt; trusted&lt;/strong&gt; web applications are querying a user&amp;#39;s donation data on their behalf (via the SOAP/XML api), DonorHub Lite requires you to maintain a list of &amp;quot;URL Prefixes&amp;quot;.&amp;nbsp; This is available under: Tools | System Setup | Portal.&amp;nbsp; Here you&amp;#39;ll notice a link to &amp;quot;(edit prefix list)&amp;quot; and a link to &amp;quot;(view log)&amp;quot;.&amp;nbsp; When you&amp;#39;re first getting started the &amp;quot;view log&amp;quot; option is handy as you can see exactly what&amp;#39;s being attempted (but not &amp;quot;accepted&amp;quot;).&amp;nbsp; If you see your portal in the log, copy the left most significant part of the URL (enough to make it &amp;quot;trusted&amp;quot; and add it to the list of trusted prefixes.&lt;/p&gt;
&lt;h3&gt;&lt;/h3&gt;</description></item><item><title>Can I programmatically query the the donation data from another application?  If so, how?</title><link>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/revision/15.aspx</link><pubDate>Mon, 18 Sep 2017 20:04:57 GMT</pubDate><guid isPermaLink="false">51c8af77-2ecd-4ae7-b5f5-4793798b888c:138</guid><dc:creator>Troy Wolbrink</dc:creator><comments>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/comments.aspx</comments><description>Revision 15 posted to Frequently Asked Questions by Troy Wolbrink on 9/18/2017 8:04:57 PM&lt;br /&gt;
&lt;h2&gt;Can I programmatically query the the donation data from another application?  If so, how?&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: SOAP, XML, API, Web Service&lt;/div&gt;

&lt;h3&gt;The DonorHub API Approach&lt;/h3&gt;
&lt;p&gt;If you want to support the largest number of organizations with your app, this is the best way to go.&amp;nbsp; To learn more:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Read the: &lt;a href="/donorhub/groups/developers/wiki/how-can-my-fundraising-app-use-the-donorhub-api.aspx"&gt;&lt;strong&gt;DonorHub API Documentation&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;The SOAP/XML Approach&lt;/h3&gt;
&lt;p&gt;DonorHub provides a SOAP/XML end point that other web applications can use to query donation data.&amp;nbsp; The Staff Portal which is included with DonorHub gets all of its data exclusively through this web service.&amp;nbsp; If you can see&amp;nbsp;something on the Staff Portal, you can programmatically retrieve the same information.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a demo of the Staff Portal:&lt;br /&gt;&lt;a href="https://www.mytntware.com/dataserver/test/staffportal/default.aspx"&gt;https://www.mytntware.com/dataserver/test/staffportal/default.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here are&amp;nbsp;demos of the SOAP web service endpoints where the Staff Portal gets its data:&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&lt;a href="https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx"&gt;https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;You&amp;#39;ll notice that the &amp;quot;dataquery&amp;quot; folder is next to the &amp;quot;staffportal&amp;quot; folder.&amp;nbsp; If you have a Staff Portal, url, replace &amp;quot;staffportal/*&amp;quot; in your url with &amp;quot;dataquery/dataqueryservice2.asmx&amp;quot; and you&amp;#39;ll have your own SOAP endpoint.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The Staff Portal&amp;nbsp;works with a single sign on provider.&amp;nbsp; The main SOAP endpoint has a SiteProperties informational record you can request.&amp;nbsp; It includes the URL to the authentication provider under &amp;quot;SSOProvider&amp;quot;.&amp;nbsp; The main way authentication works with the DataQuery service is through a session id.&amp;nbsp; Let me explain:&amp;nbsp; When the user comes to the Staff Portal, it authenticates via&amp;nbsp;the authentication provider&amp;nbsp;and gets a service ticket.&amp;nbsp; It passes in the service name and service ticket to the SOAP method &amp;quot;Login(ServiceName, ServiceTicket)&amp;quot; which returns a SessionID, UserName, and UserIsRegistered.&amp;nbsp; You need to persists the SessionID as this is used for all subsequent method calls.&amp;nbsp; If the user is not registered, you need to prompt the user for a registration code and submit it to the method &amp;quot;RegisterUser(SessionID, RegistrationCode)&amp;quot; until the user is registered.&lt;/p&gt;
&lt;h4&gt;Trusted Portal URL Prefixes&lt;/h4&gt;
&lt;p&gt;To ensure that only&lt;strong&gt; trusted&lt;/strong&gt; web applications are querying a user&amp;#39;s donation data on their behalf (via the SOAP/XML api), DonorHub Lite requires you to maintain a list of &amp;quot;URL Prefixes&amp;quot;.&amp;nbsp; This is available under: Tools | System Setup | Portal.&amp;nbsp; Here you&amp;#39;ll notice a link to &amp;quot;(edit prefix list)&amp;quot; and a link to &amp;quot;(view log)&amp;quot;.&amp;nbsp; When you&amp;#39;re first getting started the &amp;quot;view log&amp;quot; option is handy as you can see exactly what&amp;#39;s being attempted (but not &amp;quot;accepted&amp;quot;).&amp;nbsp; If you see your portal in the log, copy the left most significant part of the URL (enough to make it &amp;quot;trusted&amp;quot; and add it to the list of trusted prefixes.&lt;/p&gt;
&lt;h3&gt;&lt;/h3&gt;</description></item><item><title>Can I programmatically query the the donation data from another application?  If so, how?</title><link>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/revision/14.aspx</link><pubDate>Mon, 18 Sep 2017 20:04:41 GMT</pubDate><guid isPermaLink="false">51c8af77-2ecd-4ae7-b5f5-4793798b888c:135</guid><dc:creator>Troy Wolbrink</dc:creator><comments>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/comments.aspx</comments><description>Revision 14 posted to Frequently Asked Questions by Troy Wolbrink on 9/18/2017 8:04:41 PM&lt;br /&gt;
&lt;h2&gt;Can I programmatically query the the donation data from another application?  If so, how?&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: SOAP, XML, API, Web Service&lt;/div&gt;

&lt;h3&gt;The DonorHub API Approach&lt;/h3&gt;
&lt;p&gt;If you want to support the largest number of organizations with your app, this is the best way to go.&amp;nbsp; To learn more:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Read the: &lt;a href="/donorhub/groups/developers/wiki/how-can-my-fundraising-app-use-the-donorhub-api.aspx"&gt;&lt;strong&gt;DonorHub API Documentation&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;The SOAP/XML Approach&lt;/h3&gt;
&lt;p&gt;DonorHub provides a SOAP/XML end point that other web applications can use to query donation data.&amp;nbsp; The Staff Portal which is included with DonorHub gets all of its data exclusively through this web service.&amp;nbsp; If you can see&amp;nbsp;something on the Staff Portal, you can programmatically retrieve the same information.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a demo of the Staff Portal:&lt;br /&gt;&lt;a href="https://www.mytntware.com/dataserver/test/staffportal/default.aspx"&gt;https://www.mytntware.com/dataserver/test/staffportal/default.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here are&amp;nbsp;demos of the SOAP web service endpoints where the Staff Portal gets its data:&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&lt;a href="https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx"&gt;https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;You&amp;#39;ll notice that the &amp;quot;dataquery&amp;quot; folder is next to the &amp;quot;staffportal&amp;quot; folder.&amp;nbsp; If you have a Staff Portal, url, replace &amp;quot;staffportal/*&amp;quot; in your url with &amp;quot;dataquery/dataqueryservice2.asmx&amp;quot; and you&amp;#39;ll have your own SOAP endpoint.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The Staff Portal&amp;nbsp;works with a single sign on provider.&amp;nbsp; The main SOAP endpoint has a SiteProperties informational record you can request.&amp;nbsp; It includes the URL to the authentication provider under &amp;quot;SSOProvider&amp;quot;.&amp;nbsp; The main way authentication works with the DataQuery service is through a session id.&amp;nbsp; Let me explain:&amp;nbsp; When the user comes to the Staff Portal, it authenticates via&amp;nbsp;the authentication provider&amp;nbsp;and gets a service ticket.&amp;nbsp; It passes in the service name and service ticket to the SOAP method &amp;quot;Login(ServiceName, ServiceTicket)&amp;quot; which returns a SessionID, UserName, and UserIsRegistered.&amp;nbsp; You need to persists the SessionID as this is used for all subsequent method calls.&amp;nbsp; If the user is not registered, you need to prompt the user for a registration code and submit it to the method &amp;quot;RegisterUser(SessionID, RegistrationCode)&amp;quot; until the user is registered.&lt;/p&gt;
&lt;h4&gt;Trusted Portal URL Prefixes&lt;/h4&gt;
&lt;p&gt;To ensure that only&lt;strong&gt; trusted&lt;/strong&gt; web applications are querying a user&amp;#39;s donation data on their behalf (via the SOAP/XML api), DonorHub Lite requires you to maintain a list of &amp;quot;URL Prefixes&amp;quot;.&amp;nbsp; This is available under: Tools | System Setup | Portal.&amp;nbsp; Here you&amp;#39;ll notice a link to &amp;quot;(edit prefix list)&amp;quot; and a link to &amp;quot;(view log)&amp;quot;.&amp;nbsp; When you&amp;#39;re first getting started the &amp;quot;view log&amp;quot; option is handy as you can see exactly what&amp;#39;s being attempted (but not &amp;quot;accepted&amp;quot;).&amp;nbsp; If you see your portal in the log, copy the left most significant part of the URL (enough to make it &amp;quot;trusted&amp;quot; and add it to the list of trusted prefixes.&lt;/p&gt;
&lt;h3&gt;&lt;/h3&gt;</description></item><item><title>Can I programmatically query the the donation data from another application?  If so, how?</title><link>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/revision/13.aspx</link><pubDate>Mon, 18 Sep 2017 20:04:33 GMT</pubDate><guid isPermaLink="false">51c8af77-2ecd-4ae7-b5f5-4793798b888c:134</guid><dc:creator>Troy Wolbrink</dc:creator><comments>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/comments.aspx</comments><description>Revision 13 posted to Frequently Asked Questions by Troy Wolbrink on 9/18/2017 8:04:33 PM&lt;br /&gt;
&lt;h2&gt;Can I programmatically query the the donation data from another application?  If so, how?&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: SOAP, XML, API, Web Service&lt;/div&gt;

&lt;h3&gt;&lt;span style="background: SpringGreen;"&gt;The&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;DonorHub&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;API&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;Approach&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="background: SpringGreen;"&gt;If&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;you&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;want&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;to&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;support&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;the&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;largest&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;number&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;of&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;organizations&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;with&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;your&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;app&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;,&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;this&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;is&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;the&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;best&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;way&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;to&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;go&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;.&lt;/span&gt;&amp;nbsp; &lt;span style="background: SpringGreen;"&gt;To&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;learn&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;more&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="background: SpringGreen;"&gt;Read&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;the&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;:&lt;/span&gt; &lt;a href="https://www.tntware.com/donorhub/groups/developers/wiki/how-can-my-fundraising-app-use-the-donorhub-api.aspx"&gt;&lt;strong&gt;&lt;span style="background: SpringGreen;"&gt;DonorHub&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;API&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;Documentation&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;span style="background: SpringGreen;"&gt;The&lt;/span&gt; SOAP/XML &lt;span style="background: SpringGreen;"&gt;Approach&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;DonorHub provides a SOAP/XML end point that other web applications can use to query donation data.&amp;nbsp; The Staff Portal which is included with DonorHub gets all of its data exclusively through this web service.&amp;nbsp; If you can see&amp;nbsp;something on the Staff Portal, you can programmatically retrieve the same information.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s a demo of the Staff Portal:&lt;br /&gt;&lt;a href="https://www.mytntware.com/dataserver/test/staffportal/default.aspx"&gt;https://www.mytntware.com/dataserver/test/staffportal/default.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here are&amp;nbsp;demos of the SOAP web service endpoints where the Staff Portal gets its data:&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;&lt;a href="https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx"&gt;https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;You&amp;#39;ll notice that the &amp;quot;dataquery&amp;quot; folder is next to the &amp;quot;staffportal&amp;quot; folder.&amp;nbsp; If you have a Staff Portal, url, replace &amp;quot;staffportal/*&amp;quot; in your url with &amp;quot;dataquery/dataqueryservice2.asmx&amp;quot; and you&amp;#39;ll have your own SOAP endpoint.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The Staff Portal&amp;nbsp;works with a single sign on provider.&amp;nbsp; The main SOAP endpoint has a SiteProperties informational record you can request.&amp;nbsp; It includes the URL to the authentication provider under &amp;quot;SSOProvider&amp;quot;.&amp;nbsp; The main way authentication works with the DataQuery service is through a session id.&amp;nbsp; Let me explain:&amp;nbsp; When the user comes to the Staff Portal, it authenticates via&amp;nbsp;the authentication provider&amp;nbsp;and gets a service ticket.&amp;nbsp; It passes in the service name and service ticket to the SOAP method &amp;quot;Login(ServiceName, ServiceTicket)&amp;quot; which returns a SessionID, UserName, and UserIsRegistered.&amp;nbsp; You need to persists the SessionID as this is used for all subsequent method calls.&amp;nbsp; If the user is not registered, you need to prompt the user for a registration code and submit it to the method &amp;quot;RegisterUser(SessionID, RegistrationCode)&amp;quot; until the user is registered.&lt;/p&gt;
&lt;h4&gt;Trusted Portal URL Prefixes&lt;/h4&gt;
&lt;p&gt;To ensure that only&lt;strong&gt; trusted&lt;/strong&gt; web applications are querying a user&amp;#39;s donation data on their behalf (via the SOAP/XML api), DonorHub Lite requires you to maintain a list of &amp;quot;URL Prefixes&amp;quot;.&amp;nbsp; This is available under: Tools | System Setup | Portal.&amp;nbsp; Here you&amp;#39;ll notice a link to &amp;quot;(edit prefix list)&amp;quot; and a link to &amp;quot;(view log)&amp;quot;.&amp;nbsp; When you&amp;#39;re first getting started the &amp;quot;view log&amp;quot; option is handy as you can see exactly what&amp;#39;s being attempted (but not &amp;quot;accepted&amp;quot;).&amp;nbsp; If you see your portal in the log, copy the left most significant part of the URL (enough to make it &amp;quot;trusted&amp;quot; and add it to the list of trusted prefixes&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;The&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;TntConnect&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;DataSync&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;model&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;As&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;an&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;alternative&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;to&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;SOAP/XML&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;with&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;support&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;for&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Single&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Sign-on&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;you&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;can&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;also&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;programatically&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;query&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;donation&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;information&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;same&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;way&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;TntConnect&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;does&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&amp;nbsp; &lt;span style="text-decoration: line-through; color: red;"&gt;Here&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;s&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;documentationion&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;on&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;how&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;this&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;protocol&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;works&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;a href="/tntmpd/faqs/en/how-can-i-make-my-organization-s-online-donation-system-compatible-with-tntmpd.aspx"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;http://www.tntware.com/tntmpd/faqs/en/how-can-i-make-my-organization-s-online-donation-system-compatible-with-tntmpd.aspx&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;To&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;know&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Query.ini&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;URL&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;of&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;your&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;organization&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;in&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;DonorHub&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Lite&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;under&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;Tools&amp;quot;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;menu&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;click&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;on&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;View&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Web&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;URLs&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;.&amp;nbsp;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;The&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;query.ini&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;url&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;of&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;demo&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Staff&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Portal&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;is&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;here&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;a href="https://dataserver.tntware.com/dataserver/test/dataquery/TntQuery.aspx"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;https://dataserver.tntware.com/dataserver/test/dataquery/TntQuery.aspx&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;One&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;advantage&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;of&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;using&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;TntConnect&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;DataSync&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;programming&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;model&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;is&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;that&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;you&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;can&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;support&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;a&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;larger&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;variety&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;of&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;organizations&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;(&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;not&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;just&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;those&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;that&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;use&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;DonorHub&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Lite)&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&amp;nbsp; &lt;span style="text-decoration: line-through; color: red;"&gt;Here&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;s&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;an&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;actively&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;maintained&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;list&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;of&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;organizations&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;that&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;use&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;TntConnect&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;along&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;with&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;their&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;query.ini&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;URL&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://download.tntware.com/tntconnect/TntConnect_Organizations.csv"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;http://download.tntware.com/tntconnect/TntConnect_Organizations.csv&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;The&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;main&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;disadvantage&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;of&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;this&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;approach&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;is&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;that&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;you&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;must&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;ask&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;user&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;for&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;their&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;login&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;and&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;password&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&amp;nbsp; &lt;span style="text-decoration: line-through; color: red;"&gt;In&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;other&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;words&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;if&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;your&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;writing&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;a&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;web&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;application&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;that&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;is&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;already&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;GCX&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Single&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Sign-on&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;enabled&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;SOAP/XML&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;api&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;can&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;allow&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;you&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;to&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;query&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;user&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;s&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;data&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;without&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;prompting&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;them&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;for&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;credentials&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;but&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;TntConnect&lt;/span&gt;&amp;nbsp;&lt;span style="text-decoration: line-through; color: red;"&gt;DataSync&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;api&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;would&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;require&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;you&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;to&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;ask&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;user&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;for&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;their&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;credentials&lt;/span&gt;.&lt;/p&gt;
&lt;h3&gt;&lt;/h3&gt;</description></item><item><title>Can I programmatically query the the donation data from another application?  If so, how?</title><link>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/revision/12.aspx</link><pubDate>Thu, 14 Sep 2017 16:56:36 GMT</pubDate><guid isPermaLink="false">51c8af77-2ecd-4ae7-b5f5-4793798b888c:133</guid><dc:creator>Troy Wolbrink</dc:creator><comments>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/comments.aspx</comments><description>Revision 12 posted to Frequently Asked Questions by Troy Wolbrink on 9/14/2017 4:56:36 PM&lt;br /&gt;
&lt;h2&gt;Can I programmatically query the the donation data from another application?  If so, how?&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: SOAP, XML, API, Web Service&lt;/div&gt;

&lt;h3 class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;SOAP/XML&lt;/span&gt;&lt;/h3&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;DonorHub provides a SOAP/XML end point that other web applications can use to query donation data.&amp;nbsp; The Staff Portal which is included with DonorHub gets all of its data exclusively through this web service.&amp;nbsp; If you can see&amp;nbsp;something on the Staff Portal, you can programmatically retrieve the same information.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;Here&amp;#39;s a demo of the Staff Portal:&lt;br /&gt;&lt;a href="https://www.mytntware.com/dataserver/test/staffportal/default.aspx"&gt;https://www.mytntware.com/dataserver/test/staffportal/default.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;Here are&amp;nbsp;demos of the SOAP web service endpoints where the Staff Portal gets its data:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;a href="https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx"&gt;https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;You&amp;#39;ll notice that the &amp;quot;dataquery&amp;quot; folder is next to the &amp;quot;staffportal&amp;quot; folder.&amp;nbsp; If you have a Staff Portal, url, replace &amp;quot;staffportal/*&amp;quot; in your url with &amp;quot;dataquery/dataqueryservice2.asmx&amp;quot; and you&amp;#39;ll have your own SOAP endpoint.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;The Staff Portal&amp;nbsp;works with a single sign on provider.&amp;nbsp; The main SOAP endpoint has a SiteProperties informational record you can request.&amp;nbsp; It includes the URL to the authentication provider under &amp;quot;SSOProvider&amp;quot;.&amp;nbsp; The main way authentication works with the DataQuery service is through a session id.&amp;nbsp; Let me explain:&amp;nbsp; When the user comes to the Staff Portal, it authenticates via&amp;nbsp;the authentication provider&amp;nbsp;and gets a service ticket.&amp;nbsp; It passes in the service name and service ticket to the SOAP method &amp;quot;Login(ServiceName, ServiceTicket)&amp;quot; which returns a SessionID, UserName, and UserIsRegistered.&amp;nbsp; You need to persists the SessionID as this is used for all subsequent method calls.&amp;nbsp; If the user is not registered, you need to prompt the user for a registration code and submit it to the method &amp;quot;RegisterUser(SessionID, RegistrationCode)&amp;quot; until the user is registered.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;Trusted Portal URL Prefixes&lt;/span&gt;&lt;/h3&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;To ensure that only&lt;strong&gt; trusted&lt;/strong&gt; web applications are querying a user&amp;#39;s donation data on their behalf (via the SOAP/XML api), DonorHub Lite requires you to maintain a list of &amp;quot;URL Prefixes&amp;quot;.&amp;nbsp; This is available under: Tools | System Setup | Portal.&amp;nbsp; Here you&amp;#39;ll notice a link to &amp;quot;(edit prefix list)&amp;quot; and a link to &amp;quot;(view log)&amp;quot;.&amp;nbsp; When you&amp;#39;re first getting started the &amp;quot;view log&amp;quot; option is handy as you can see exactly what&amp;#39;s being attempted (but not &amp;quot;accepted&amp;quot;).&amp;nbsp; If you see your portal in the log, copy the left most significant part of the URL (enough to make it &amp;quot;trusted&amp;quot; and add it to the list of trusted prefixes.&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;The TntConnect DataSync model&lt;/span&gt;&lt;/h3&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;As an alternative to SOAP/XML with support for Single Sign-on, you can also programatically query donation information the same way TntConnect does.&amp;nbsp; Here&amp;#39;s documentationion on how this protocol works:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;a href="/tntmpd/faqs/en/how-can-i-make-my-organization-s-online-donation-system-compatible-with-tntmpd.aspx"&gt;http://www.tntware.com/tntmpd/faqs/en/how-can-i-make-my-organization-s-online-donation-system-compatible-with-tntmpd.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;To know the Query.ini URL of your organization, in DonorHub Lite, under the &amp;quot;Tools&amp;quot; menu, click on &amp;quot;View Web URLs&amp;quot;.&amp;nbsp; The query.ini url of the demo Staff Portal is here:&lt;br /&gt;&lt;a href="https://dataserver.tntware.com/dataserver/test/dataquery/TntQuery.aspx"&gt;https://dataserver.tntware.com/dataserver/test/dataquery/TntQuery.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;One advantage of using the TntConnect DataSync programming model is that you can support a larger variety of organizations (not just those that use DonorHub Lite).&amp;nbsp; Here&amp;#39;s an actively maintained list of organizations that use TntConnect, along with their query.ini URL:&lt;br /&gt;&lt;a href="http://download.tntware.com/tntconnect/TntConnect_Organizations.csv"&gt;http://download.tntware.com/tntconnect/TntConnect_Organizations.csv&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The main disadvantage of this approach is that you must ask the user for their login and password.&amp;nbsp; In other words, if your writing a web application that is already GCX Single Sign-on enabled, the SOAP/XML api can allow you to query the user&amp;#39;s data without prompting them for credentials, but the TntConnect&amp;nbsp;DataSync api would require you to ask the user for their credentials.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Can I programmatically query the the donation data from another application?  If so, how?</title><link>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/revision/11.aspx</link><pubDate>Thu, 14 Sep 2017 16:56:03 GMT</pubDate><guid isPermaLink="false">51c8af77-2ecd-4ae7-b5f5-4793798b888c:97</guid><dc:creator>Troy Wolbrink</dc:creator><comments>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/comments.aspx</comments><description>Revision 11 posted to Frequently Asked Questions by Troy Wolbrink on 9/14/2017 4:56:03 PM&lt;br /&gt;
&lt;h2&gt;Can I programmatically query the the donation data from another application?  If so, how?&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: SOAP, XML, API, Web Service&lt;/div&gt;

&lt;h3 class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;SOAP/XML&lt;/span&gt;&lt;/h3&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;DonorHub &lt;span style="text-decoration: line-through; color: red;"&gt;Lite&lt;/span&gt; provides a SOAP/XML end point that other web applications can use to query donation data.&amp;nbsp; The Staff Portal which is included with DonorHub &lt;span style="text-decoration: line-through; color: red;"&gt;Lite&lt;/span&gt;gets all of its data exclusively through this web service.&amp;nbsp; If you can see&amp;nbsp;something on the Staff Portal, you can programmatically retrieve the same information.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;Here&amp;#39;s a demo of the Staff Portal:&lt;br /&gt;&lt;a href="https://dataserver.tntware.com/dataserver/test/staffportal/default.aspx"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;https://dataserver.tntware.com/dataserver/test/staffportal/default.aspx&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;lt;o:p&amp;gt;&amp;lt;/o:p&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="https://www.mytntware.com/dataserver/test/staffportal/default.aspx"&gt;&lt;span style="background: SpringGreen;"&gt;https://www.mytntware.com/dataserver/test/staffportal/default.aspx&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;Here are&amp;nbsp;demos of the SOAP web service endpoints where the Staff Portal gets its data:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;a href="https://dataserver.tntware.com/dataserver/test/dataquery/dataqueryservice.asmx"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;https://dataserver.tntware.com/dataserver/test/dataquery/dataqueryservice.asmx&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;a href="https://dataserver.tntware.com/dataserver/test/gcxauthentication/gcxauthenticationservice.asmx"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;https://dataserver.tntware.com/dataserver/test/gcxauthentication/gcxauthenticationservice.asmx&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;[&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;Caveat:&lt;/span&gt;&amp;nbsp;&lt;span style="text-decoration: line-through; color: red;"&gt;The&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;Demo&amp;quot;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Staff&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Portal&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;uses&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;a&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;special&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;Test&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Authentication&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;and&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;not&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;GCX&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Authentication&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;service&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;which&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;is&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;available&lt;/span&gt; &lt;a href="https://dataserver.tntware.com/dataserver/test/testauthentication/testauthenticationservice.asmx"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;a href="https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx"&gt;&lt;span style="background: SpringGreen;"&gt;https://www.mytntware.com/dataserver/test/dataquery/dataqueryservice2.asmx&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;You&amp;#39;ll notice that the &amp;quot;dataquery&amp;quot; folder is next to the &amp;quot;staffportal&amp;quot; folder.&amp;nbsp; If you have a Staff Portal&lt;span style="background: SpringGreen;"&gt;,&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;url&lt;/span&gt;, replace &amp;quot;staffportal/*&amp;quot; in your url with &lt;span style="text-decoration: line-through; color: red;"&gt;&amp;quot;dataquery/dataqueryservice.asmx&amp;quot;&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;&amp;quot;dataquery/dataqueryservice2.asmx&amp;quot;&lt;/span&gt; and you&amp;#39;ll have your own SOAP endpoint.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;The Staff Portal&amp;nbsp;works with &lt;span style="text-decoration: line-through; color: red;"&gt;GCX&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;a&lt;/span&gt; single sign on &lt;span style="background: SpringGreen;"&gt;provider&lt;/span&gt;.&amp;nbsp; &lt;span style="background: SpringGreen;"&gt;The&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;main&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;SOAP&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;endpoint&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;has&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;a&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;SiteProperties&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;informational&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;record&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;you&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;can&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;request&lt;/span&gt;&lt;span style="background: SpringGreen;"&gt;.&lt;/span&gt;&amp;nbsp; &lt;span style="background: SpringGreen;"&gt;It&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;includes&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;the&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;URL&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;to&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;the&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;authentication&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;provider&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;under&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;&amp;quot;SSOProvider&amp;quot;.&amp;nbsp;&lt;/span&gt; The main way authentication works with the DataQuery service is through a session id.&amp;nbsp; Let me explain:&amp;nbsp; When the user comes to the Staff Portal, it authenticates via&lt;span style="text-decoration: line-through; color: red;"&gt;GCX&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;single&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;sign&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;on&lt;/span&gt; &amp;nbsp;&lt;span style="background: SpringGreen;"&gt;the&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;authentication&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;provider&lt;/span&gt;&amp;nbsp;and gets a service ticket.&amp;nbsp; It passes in the service name and service ticket to the &lt;span style="text-decoration: line-through; color: red;"&gt;Data&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Query&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;SOAP&lt;/span&gt; method &amp;quot;Login(ServiceName, ServiceTicket)&amp;quot; which returns a SessionID, UserName, and UserIsRegistered.&amp;nbsp; You need to persists the SessionID as this is used for all subsequent method calls.&amp;nbsp; If the user is not registered, you need to prompt the user for a registration code and submit it to the method &amp;quot;RegisterUser(SessionID, RegistrationCode)&amp;quot; until the user is registered&lt;span style="text-decoration: line-through; color: red;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;The&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Staff&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Portal&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;is&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;a&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;good&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;working&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;model&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;on&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;how&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;to&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;use&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;web&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;services&lt;/span&gt;.&amp;nbsp; &lt;span style="text-decoration: line-through; color: red;"&gt;If&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;you&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;d&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;like&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;to&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;look&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;over&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;the&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Staff&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Portal&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;source&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;code&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;,&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;it&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;s&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;available&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;here&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;(&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;written&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;in&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Delphi.NET&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;as&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;an&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;ASP.NET&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;application)&lt;/span&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;a href="https://dataserver.tntware.com/dataserver/test/staffportal/staffportal_source.zip"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="text-decoration: line-through; color: red;"&gt;https://dataserver.tntware.com/dataserver/test/staffportal/staffportal_source.zip&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;Trusted Portal URL Prefixes&lt;/span&gt;&lt;/h3&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;To ensure that only&lt;strong&gt; trusted&lt;/strong&gt; web applications are querying a user&amp;#39;s donation data on their behalf (via the SOAP/XML api), DonorHub Lite requires you to maintain a list of &amp;quot;URL Prefixes&amp;quot;.&amp;nbsp; This is available under: Tools | System Setup | Portal.&amp;nbsp; Here you&amp;#39;ll notice a link to &amp;quot;(edit prefix list)&amp;quot; and a link to &amp;quot;(view log)&amp;quot;.&amp;nbsp; When you&amp;#39;re first getting started the &amp;quot;view log&amp;quot; option is handy as you can see exactly what&amp;#39;s being attempted (but not &amp;quot;accepted&amp;quot;).&amp;nbsp; If you see your portal in the log, copy the left most significant part of the URL (enough to make it &amp;quot;trusted&amp;quot; and add it to the list of trusted prefixes.&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;The TntConnect DataSync model&lt;/span&gt;&lt;/h3&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;As an alternative to SOAP/XML with support for &lt;span style="text-decoration: line-through; color: red;"&gt;GCX&lt;/span&gt; Single Sign-on, you can also programatically query donation information the same way TntConnect does.&amp;nbsp; Here&amp;#39;s documentationion on how this protocol works:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;a href="/tntmpd/faqs/en/how-can-i-make-my-organization-s-online-donation-system-compatible-with-tntmpd.aspx"&gt;http://www.tntware.com/tntmpd/faqs/en/how-can-i-make-my-organization-s-online-donation-system-compatible-with-tntmpd.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;To know the Query.ini URL of your organization, in DonorHub Lite, under the &amp;quot;Tools&amp;quot; menu, click on &amp;quot;View Web URLs&amp;quot;.&amp;nbsp; The query.ini url of the demo Staff Portal is here:&lt;br /&gt;&lt;a href="https://dataserver.tntware.com/dataserver/test/dataquery/TntQuery.aspx"&gt;https://dataserver.tntware.com/dataserver/test/dataquery/TntQuery.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;One advantage of using the TntConnect DataSync programming model is that you can support a larger variety of organizations (not just those that use DonorHub Lite).&amp;nbsp; Here&amp;#39;s an actively maintained list of organizations that use TntConnect, along with their query.ini URL:&lt;br /&gt;&lt;a href="http://download.tntware.com/tntmpd/TntMPD_Organizations.csv"&gt;http://download.tntware.com/tntconnect/TntConnect_Organizations.csv&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The main disadvantage of this approach is that you must ask the user for their login and password.&amp;nbsp; In other words, if your writing a web application that is already GCX Single Sign-on enabled, the SOAP/XML api can allow you to query the user&amp;#39;s data without prompting them for credentials, but the TntConnect&amp;nbsp;DataSync api would require you to ask the user for their credentials.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Can I programmatically query the the donation data from another application?  If so, how?</title><link>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/revision/10.aspx</link><pubDate>Fri, 23 Sep 2016 04:06:44 GMT</pubDate><guid isPermaLink="false">51c8af77-2ecd-4ae7-b5f5-4793798b888c:96</guid><dc:creator>Troy Wolbrink</dc:creator><comments>https://www.tntware.com/donorhub/faqs/en/can-i-programmatically-query-the-the-donation-data-from-another-application-if-so-how/comments.aspx</comments><description>Revision 10 posted to Frequently Asked Questions by Troy Wolbrink on 9/23/2016 4:06:44 AM&lt;br /&gt;
&lt;h2&gt;Can I programmatically query the the donation data from another application?  If so, how?&lt;/h2&gt;
&lt;div style="font-size: 90%;"&gt;Filed under: SOAP, XML, API, Web Service&lt;/div&gt;

&lt;h3 class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;SOAP/XML&lt;/span&gt;&lt;/h3&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;DonorHub Lite provides a SOAP/XML end point that other web applications can use to query donation data.&amp;nbsp; The Staff Portal which is included with DonorHub Lite&amp;nbsp;gets all of its data exclusively through this web service.&amp;nbsp; If you can see&amp;nbsp;something on the Staff Portal, you can programmatically retrieve the same information.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;Here&amp;#39;s a demo of the Staff Portal:&lt;br /&gt;&lt;a href="https://dataserver.tntware.com/dataserver/test/staffportal/default.aspx"&gt;&lt;span style="color:#0000ff;"&gt;https://dataserver.tntware.com/dataserver/test/staffportal/default.aspx&lt;/span&gt;&lt;/a&gt;&amp;lt;o:p&amp;gt;&amp;lt;/o:p&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;Here are&amp;nbsp;demos of the SOAP web service endpoints where the Staff Portal gets its data:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;a href="https://dataserver.tntware.com/dataserver/test/dataquery/dataqueryservice.asmx"&gt;&lt;span style="color:#0000ff;"&gt;https://dataserver.tntware.com/dataserver/test/dataquery/dataqueryservice.asmx&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;a href="https://dataserver.tntware.com/dataserver/test/gcxauthentication/gcxauthenticationservice.asmx"&gt;&lt;span style="color:#0000ff;"&gt;https://dataserver.tntware.com/dataserver/test/gcxauthentication/gcxauthenticationservice.asmx&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;[Caveat:&amp;nbsp;The &amp;quot;Demo&amp;quot; Staff Portal uses a special &amp;quot;Test Authentication&amp;quot; and not &amp;quot;GCX Authentication&amp;quot; service which is available &lt;a href="https://dataserver.tntware.com/dataserver/test/testauthentication/testauthenticationservice.asmx"&gt;here&lt;/a&gt;.]&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;You&amp;#39;ll notice that the &amp;quot;dataquery&amp;quot; folder is next to the &amp;quot;staffportal&amp;quot; folder.&amp;nbsp; If you have a Staff Portal, replace &amp;quot;staffportal/*&amp;quot; in your url with &amp;quot;dataquery/dataqueryservice.asmx&amp;quot; and you&amp;#39;ll have your own SOAP endpoint.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;The Staff Portal&amp;nbsp;works with GCX single sign on.&amp;nbsp; The main way authentication works with the DataQuery service is through a session id.&amp;nbsp; Let me explain:&amp;nbsp; When the user comes to the Staff Portal, it authenticates via GCX single sign on and gets a service ticket.&amp;nbsp; It passes in the service name and service ticket to the Data Query method &amp;quot;Login(ServiceName, ServiceTicket)&amp;quot; which returns a SessionID, UserName, and UserIsRegistered.&amp;nbsp; You need to persists the SessionID as this is used for all subsequent method calls.&amp;nbsp; If the user is not registered, you need to prompt the user for a registration code and submit it to the method &amp;quot;RegisterUser(SessionID, RegistrationCode)&amp;quot; until the user is registered.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;The Staff Portal is a good working model on how to use the web services.&amp;nbsp; If you&amp;#39;d like to look over the Staff Portal source code, it&amp;#39;s available here (written in Delphi.NET as an ASP.NET application):&lt;br /&gt;&lt;a href="https://dataserver.tntware.com/dataserver/test/staffportal/staffportal_source.zip"&gt;&lt;span style="color:#0000ff;"&gt;https://dataserver.tntware.com/dataserver/test/staffportal/staffportal_source.zip&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;Trusted Portal URL Prefixes&lt;/span&gt;&lt;/h3&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;To ensure that only&lt;strong&gt; trusted&lt;/strong&gt; web applications are querying a user&amp;#39;s donation data on their behalf (via the SOAP/XML api), DonorHub Lite requires you to maintain a list of &amp;quot;URL Prefixes&amp;quot;.&amp;nbsp; This is available under: Tools | System Setup | Portal.&amp;nbsp; Here you&amp;#39;ll notice a link to &amp;quot;(edit prefix list)&amp;quot; and a link to &amp;quot;(view log)&amp;quot;.&amp;nbsp; When you&amp;#39;re first getting started the &amp;quot;view log&amp;quot; option is handy as you can see exactly what&amp;#39;s being attempted (but not &amp;quot;accepted&amp;quot;).&amp;nbsp; If you see your portal in the log, copy the left most significant part of the URL (enough to make it &amp;quot;trusted&amp;quot; and add it to the list of trusted prefixes.&lt;/span&gt;&lt;/p&gt;
&lt;h3 class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;The TntConnect DataSync model&lt;/span&gt;&lt;/h3&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;As an alternative to SOAP/XML with support for GCX Single Sign-on, you can also programatically query donation information the same way TntConnect does.&amp;nbsp; Here&amp;#39;s documentationion on how this protocol works:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;a href="/tntmpd/faqs/en/how-can-i-make-my-organization-s-online-donation-system-compatible-with-tntmpd.aspx"&gt;http://www.tntware.com/tntmpd/faqs/en/how-can-i-make-my-organization-s-online-donation-system-compatible-with-tntmpd.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;To know the Query.ini URL of your organization, in DonorHub Lite, under the &amp;quot;Tools&amp;quot; menu, click on &amp;quot;View Web URLs&amp;quot;.&amp;nbsp; The query.ini url of the demo Staff Portal is here:&lt;br /&gt;&lt;a href="https://dataserver.tntware.com/dataserver/test/dataquery/TntQuery.aspx"&gt;https://dataserver.tntware.com/dataserver/test/dataquery/TntQuery.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;One advantage of using the TntConnect DataSync programming model is that you can support a larger variety of organizations (not just those that use DonorHub Lite).&amp;nbsp; Here&amp;#39;s an actively maintained list of organizations that use TntConnect, along with their query.ini URL:&lt;br /&gt;&lt;a href="http://download.tntware.com/tntmpd/TntMPD_Organizations.csv"&gt;http://download.tntware.com/tntconnect/TntConnect_Organizations.csv&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The main disadvantage of this approach is that you must ask the user for their login and password.&amp;nbsp; In other words, if your writing a web application that is already GCX Single Sign-on enabled, the SOAP/XML api can allow you to query the user&amp;#39;s data without prompting them for credentials, but the &lt;span style="text-decoration: line-through; color: red;"&gt;TntMPD&lt;/span&gt; &lt;span style="text-decoration: line-through; color: red;"&gt;Query.ini&lt;/span&gt; &lt;span style="background: SpringGreen;"&gt;TntConnect&lt;/span&gt;&amp;nbsp;&lt;span style="background: SpringGreen;"&gt;DataSync&lt;/span&gt; api would require you to ask the user for their credentials.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Tahoma&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#0f243e;font-size:10pt;"&gt;&lt;/span&gt;&lt;/p&gt;</description></item></channel></rss>