Event Donations

Last Updated: July 27, 2012

This document lays out the specification of interacting with the Hobnob system, allowing for reading, writing, and updating Event donations. For creating donations via the API, see Virtual Donation Terminal

Event Donation Properties

GET : https://secure.qgiv.com/hobnob/admin/event/[id]/donations

Returns all event donations.

Option 1 Qgiv User qgiv.user@qgiv.com 53 Lake Morton Dr Lakeland Florida 33811 US Qgiv Software Engineer 223 332 1 1 1 1 1 2042 1 Credit Card
{"donation":[
	{
		"id":"1982",
		"questions":[
			{
				"id":"144",
				"answer":"Option 1"
			}
		],
		"donor":{
			"id":"4853",
			"firstName":"Qgiv",
			"lastName":"User",
			"phoneNumber":"8888888888",
			"mobileNumber":null,
			"emailAddress":"no-reply@qgiv.com",
			"residentStreet":"53 Lake Morton Dr",
			"residentSuite":"",
			"residentCity":"Lakeland",
			"residentState":"Florida",
			"residentZip":"33811",
			"residentCountry":"US",
			"organizationName":"Qgiv",
			"position":"Software Engineer"
		},
		"restriction":"223",
		"contactOptionReceiveUpdates":1,
		"contactOptionMailViaPost":1,
		"contactOptionPubliclyDisplayName":1,
		"contactOptionPubliclyDisplayAmount":1,
		"classification":"332",
		"receivingPartyType":"1",
		"receivingParty":"2042",
		"donationAmount":1,
		"offlineState":"",
		"paymentType":"Credit Card",
		"checkNum":""
	}
	...
]}
Libraries to use :
using System.Net;
using System.Text;
using System.IO;


string postData = "token=skyMV9YeaxQ7EjbEUHt8TUiP";
HttpWebResponse resp = null;
string result = null;

try {
HttpWebRequest req = WebRequest.Create(new Uri("https://secure.qgiv.com/hobnob/admin/event/555/donations.xml")) as HttpWebRequest;
req.Method = "POST";
req.Accept = "*/*";
req.UserAgent = "http_request/0.1";
req.Timeout = 50000;
req.ContentType = "application/x-www-form-urlencoded";
byte[] formData = UTF8Encoding.UTF8.GetBytes(postData);
using (Stream post = req.GetRequestStream()) {
post.Write(formData, 0, formData.Length);
}
// Pick up the response:
resp = req.GetResponse() as HttpWebResponse;

if (resp.StatusCode == System.Net.HttpStatusCode.OK) {
using (resp) {
StreamReader reader =
new StreamReader(resp.GetResponseStream());
result = reader.ReadToEnd();
}
}
} catch (Exception e) {
result = "error : " + e.Message;
}
String data = URLEncoder.encode("token", "UTF-8") + "=" + URLEncoder.encode("skyMV9YeaxQ7EjbEUHt8TUiP", "UTF-8");

URL url = new URL("https://secure.qgiv.com/hobnob/admin/event/555/donations.xml");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();

BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
String output;
while ((line = rd.readLine()) != null) {
output += line;
}

wr.close();
rd.close();
return output;
var apiRequest = false;
var url = "https://secure.qgiv.com/hobnob/admin/event/555/donations.xml";
var postData = "token=skyMV9YeaxQ7EjbEUHt8TUiP";
var results;

var isIE8 = window.XDomainRequest ? true : false;
if (typeof XMLHttpRequest != "undefined") {
if(isIE8) {
apiRequest = new Window.XDomainRequest()
} else {
apiRequest = new XMLHttpRequest();
}
} else if (window.ActiveXObject) {
var ieVersions = ["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];
for (var i = 0; i < ieVersions.length; i++) {
try {
apiRequest = new ActiveXObject(aVersions[i]);
} catch(oError) {
throw new Error("XMLHttp object could be created.");
}
}
}

if (!apiRequest) {
alert("An error has occuerd while creating XMLHttpRequest object");
}


if (apiRequest) {
apiRequest.open("POST", url, true);
apiRequest.onreadystatechange = handleResponse;
apiRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
apiRequest.send(postData);
}

function handleResponse() {
if (apiRequest.readyState == 4) {
if (apiRequest.status == 200) {
results = apiRequest.responseText;
} else {
results = "Server response is unsuccessful";
}
} else {
results = "Server response is incomplete"
}
}
$postArray = array(
   'token' => '[your API token]'
);

$postString = http_build_query($postArray);

$url = 'https://secure.qgiv.com/hobnob/admin/event/555/donations.xml';

$curlHandler = curl_init();

curl_setopt($curlHandler, CURLOPT_URL, $url);
curl_setopt($curlHandler, CURLOPT_POST, true);
curl_setopt($curlHandler, CURLOPT_POSTFIELDS, $postString);
curl_setopt($curlHandler, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlHandler, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curlHandler, CURLOPT_SSL_VERIFYHOST, false);

$response = curl_exec($curlHandler);

if (curl_errno($curlHandler)) {
$response = 'error : '.curl_error($curlHandler);
} else {
curl_close($curlHandler);
}

return $response;

import urllib, urllib2

postArray = {
   'token' => '[your API token]'
}

postString = urllib.urlencode(postArray)

url = 'https://secure.qgiv.com/hobnob/admin/event/555/donations.xml';

request = urllib2.Request(url, data=data)

try:
  response = urllib2.urlopen(request)
  result = response.read()
  response.close()
except urllib2.URLError, e:
  result = 'error : ' + str(e.code)

return result

GET : https://secure.qgiv.com/hobnob/admin/event/[id]/donations/[id]

Returns the donation requested, individually specified by ID.

Option 1 Qgiv User qgiv.user@qgiv.com 53 Lake Morton Dr Lakeland Florida 33811 US Qgiv Software Engineer 223 332 1 1 1 1 1 2042 1 Credit Card
{"donation":{
	"id":"1982",
	"questions":[
		{
			"id":"144",
			"answer":"Option 1"
		}
	],
	"donor":{
		"id":"4853",
		"firstName":"Qgiv",
		"lastName":"User",
		"phoneNumber":"8888888888",
		"mobileNumber":null,
		"emailAddress":"no-reply@qgiv.com",
		"residentStreet":"53 Lake Morton Dr",
		"residentSuite":"",
		"residentCity":"Lakeland",
		"residentState":"Florida",
		"residentZip":"33811",
		"residentCountry":"US",
		"organizationName":"Qgiv",
		"position":"Software Engineer"
	},
	"restriction":"223",
	"contactOptionReceiveUpdates":1,
	"contactOptionMailViaPost":1,
	"contactOptionPubliclyDisplayName":1,
	"contactOptionPubliclyDisplayAmount":1,
	"classification":"332",
	"receivingPartyType":"1",
	"receivingParty":"2042",
	"donationAmount":1,
	"offlineState":"",
	"paymentType":"Credit Card",
	"checkNum":""
}}
Libraries to use :
using System.Net;
using System.Text;
using System.IO;


string postData = "token=skyMV9YeaxQ7EjbEUHt8TUiP";
HttpWebResponse resp = null;
string result = null;

try {
HttpWebRequest req = WebRequest.Create(new Uri("https://secure.qgiv.com/hobnob/admin/event/555/donations/1982.xml")) as HttpWebRequest;
req.Method = "POST";
req.Accept = "*/*";
req.UserAgent = "http_request/0.1";
req.Timeout = 50000;
req.ContentType = "application/x-www-form-urlencoded";
byte[] formData = UTF8Encoding.UTF8.GetBytes(postData);
using (Stream post = req.GetRequestStream()) {
post.Write(formData, 0, formData.Length);
}
// Pick up the response:
resp = req.GetResponse() as HttpWebResponse;

if (resp.StatusCode == System.Net.HttpStatusCode.OK) {
using (resp) {
StreamReader reader =
new StreamReader(resp.GetResponseStream());
result = reader.ReadToEnd();
}
}
} catch (Exception e) {
result = "error : " + e.Message;
}
String data = URLEncoder.encode("token", "UTF-8") + "=" + URLEncoder.encode("skyMV9YeaxQ7EjbEUHt8TUiP", "UTF-8");

URL url = new URL("https://secure.qgiv.com/hobnob/admin/event/555/donations/1982.xml");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();

BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
String output;
while ((line = rd.readLine()) != null) {
output += line;
}

wr.close();
rd.close();
return output;
var apiRequest = false;
var url = "https://secure.qgiv.com/hobnob/admin/event/555/donations/1982.xml";
var postData = "token=skyMV9YeaxQ7EjbEUHt8TUiP";
var results;

var isIE8 = window.XDomainRequest ? true : false;
if (typeof XMLHttpRequest != "undefined") {
if(isIE8) {
apiRequest = new Window.XDomainRequest()
} else {
apiRequest = new XMLHttpRequest();
}
} else if (window.ActiveXObject) {
var ieVersions = ["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];
for (var i = 0; i < ieVersions.length; i++) {
try {
apiRequest = new ActiveXObject(aVersions[i]);
} catch(oError) {
throw new Error("XMLHttp object could be created.");
}
}
}

if (!apiRequest) {
alert("An error has occuerd while creating XMLHttpRequest object");
}


if (apiRequest) {
apiRequest.open("POST", url, true);
apiRequest.onreadystatechange = handleResponse;
apiRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
apiRequest.send(postData);
}

function handleResponse() {
if (apiRequest.readyState == 4) {
if (apiRequest.status == 200) {
results = apiRequest.responseText;
} else {
results = "Server response is unsuccessful";
}
} else {
results = "Server response is incomplete"
}
}
$postArray = array(
   'token' => '[your API token]'
);

$postString = http_build_query($postArray);

$url = 'https://secure.qgiv.com/hobnob/admin/event/555/donations/1982.xml';

$curlHandler = curl_init();

curl_setopt($curlHandler, CURLOPT_URL, $url);
curl_setopt($curlHandler, CURLOPT_POST, true);
curl_setopt($curlHandler, CURLOPT_POSTFIELDS, $postString);
curl_setopt($curlHandler, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlHandler, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curlHandler, CURLOPT_SSL_VERIFYHOST, false);

$response = curl_exec($curlHandler);

if (curl_errno($curlHandler)) {
$response = 'error : '.curl_error($curlHandler);
} else {
curl_close($curlHandler);
}

return $response;

import urllib, urllib2

postArray = {
   'token' => '[your API token]'
}

postString = urllib.urlencode(postArray)

url = 'https://secure.qgiv.com/hobnob/admin/event/555/donations/1982.xml';

request = urllib2.Request(url, data=data)

try:
  response = urllib2.urlopen(request)
  result = response.read()
  response.close()
except urllib2.URLError, e:
  result = 'error : ' + str(e.code)

return result

POST : https://secure.qgiv.com/hobnob/admin/event/[id]/donations

Updates the specified donations and returns the updated donations for the event.

Hobnob 8888888888 224
{"donations":[
	{
		"id":"1982",
		"donor":{
			"firstName":"Hobnob",
			"mobileNumber":"8888888888"
		},
		"restriction":"224"
	}
	...
]}
Libraries to use :
using System.Net;
using System.Text;
using System.IO;


string postData = "token=skyMV9YeaxQ7EjbEUHt8TUiP&package=[xml or json formatted input]";
HttpWebResponse resp = null;
string result = null;

try {
HttpWebRequest req = WebRequest.Create(new Uri("https://secure.qgiv.com/hobnob/admin/event/555/assets/donations.xml")) as HttpWebRequest;
req.Method = "POST";
req.Accept = "*/*";
req.UserAgent = "http_request/0.1";
req.Timeout = 50000;
req.ContentType = "application/x-www-form-urlencoded";
byte[] formData = UTF8Encoding.UTF8.GetBytes(postData);
using (Stream post = req.GetRequestStream()) {
post.Write(formData, 0, formData.Length);
}
// Pick up the response:
resp = req.GetResponse() as HttpWebResponse;

if (resp.StatusCode == System.Net.HttpStatusCode.OK) {
using (resp) {
StreamReader reader =
new StreamReader(resp.GetResponseStream());
result = reader.ReadToEnd();
}
}
} catch (Exception e) {
result = "error : " + e.Message;
}
String data = URLEncoder.encode("token", "UTF-8") + "=" + URLEncoder.encode("skyMV9YeaxQ7EjbEUHt8TUiP", "UTF-8");
data += "&" + URLEncoder.encode("package", "UTF-8") + "=" URLEncoder.encode("[xml or json formatted input]", "UTF-8");

URL url = new URL("https://secure.qgiv.com/hobnob/admin/event/555/assets/donations.xml");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();

BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
String output;
while ((line = rd.readLine()) != null) {
output += line;
}

wr.close();
rd.close();
return output;
var apiRequest = false;
var url = "https://secure.qgiv.com/hobnob/admin/event/555/assets/donations.xml";
var postData = "token=skyMV9YeaxQ7EjbEUHt8TUiP&package=[xml or json formatted input]";
var results;

var isIE8 = window.XDomainRequest ? true : false;
if (typeof XMLHttpRequest != "undefined") {
if(isIE8) {
apiRequest = new Window.XDomainRequest()
} else {
apiRequest = new XMLHttpRequest();
}
} else if (window.ActiveXObject) {
var ieVersions = ["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];
for (var i = 0; i < ieVersions.length; i++) {
try {
apiRequest = new ActiveXObject(aVersions[i]);
} catch(oError) {
throw new Error("XMLHttp object could be created.");
}
}
}

if (!apiRequest) {
alert("An error has occuerd while creating XMLHttpRequest object");
}


if (apiRequest) {
apiRequest.open("POST", url, true);
apiRequest.onreadystatechange = handleResponse;
apiRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
apiRequest.send(postData);
}

function handleResponse() {
if (apiRequest.readyState == 4) {
if (apiRequest.status == 200) {
results = apiRequest.responseText;
} else {
results = "Server response is unsuccessful";
}
} else {
results = "Server response is incomplete"
}
}
$postArray = array(
'token' => '[your API token]',
'package' => '[xml or json formatted input]'
);

$postString = http_build_query($postArray);

$url = 'https://secure.qgiv.com/hobnob/admin/event/555/assets/donations.xml';

$curlHandler = curl_init();

curl_setopt($curlHandler, CURLOPT_URL, $url);
curl_setopt($curlHandler, CURLOPT_POST, true);
curl_setopt($curlHandler, CURLOPT_POSTFIELDS, $postString);
curl_setopt($curlHandler, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlHandler, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curlHandler, CURLOPT_SSL_VERIFYHOST, false);

$response = curl_exec($curlHandler);

if (curl_errno($curlHandler)) {
$response = 'error : '.curl_error($curlHandler);
} else {
curl_close($curlHandler);
}

return $response;

import urllib, urllib2

postArray = {
'token' : '[your API token]',
'package' : '[xml or json formatted input]'
}

postString = urllib.urlencode(postArray)

url = 'https://secure.qgiv.com/hobnob/admin/event/555/assets/donations.xml';

request = urllib2.Request(url, data=data)

try:
  response = urllib2.urlopen(request)
  result = response.read()
  response.close()
except urllib2.URLError, e:
  result = 'error : ' + str(e.code)

return result

Output

Option 1 Hobnob User 8888888888 qgiv.user@qgiv.com 53 Lake Morton Dr Lakeland Florida 33811 US Qgiv Software Engineer 224 332 1 1 1 1 1 2042 1 Credit Card
{
	"donations":[
		{
			"id":"1982",
			"questions":[
				{
					"id":"144",
					"answer":"Option 1"
				}
			],
			"donor":{
				"id":"4853",
				"firstName":"Hobnob",
				"lastName":"User",
				"phoneNumber":"8888888888",
				"mobileNumber":"8888888888",
				"emailAddress":"no-reply@qgiv.com",
				"residentStreet":"53 Lake Morton Dr",
				"residentSuite":"",
				"residentCity":"Lakeland",
				"residentState":"Florida",
				"residentZip":"33811",
				"residentCountry":"US",
				"organizationName":"Qgiv",
				"position":"Software Engineer"
			},
			"restriction":"223",
			"contactOptionReceiveUpdates":1,
			"contactOptionMailViaPost":1,
			"contactOptionPubliclyDisplayName":1,
			"contactOptionPubliclyDisplayAmount":1,
			"classification":"332",
			"receivingPartyType":"1",
			"receivingParty":"2042",
			"donationAmount":1,
			"offlineState":"",
			"paymentType":"Credit Card",
			"checkNum":""
		}
		...
	]
}

* denotes a required field

** denotes a required field based on Event settings

*** denotes a field that is only required when submitting Form level API credentials