Introduction
This service is currently under active development and some requests/responses could change.
API Reference
Overview
The Webconnex API is build upon simple REST patterns. We use standard HTTP methods, resource-oriented URLs and HTTP error codes in our responses.
URL: https://api.webconnex.com/v2/public/
Authentication
Typical authenticated API request:
curl -X "GET" "https://api.webconnex.com/v2/public/ping" \
-H "apiKey: <YOUR API KEY>"
Authentication happens through the use of an API key issued from the Integrations pane under account settings. A valid API Key must be included in the request header for each request.
Structure
Rate Limits
We have a default daily limit of 10,000 requests per day with a burst limit of up to 900 requests per 15 minutes block of time. Daily limits are reset at 0:00 UTC each day. If you needs these limits increased please reach out to the corresponding product solution team: team@regfox.com team@ticketspice.com team@givingfuel.com team@redpodium.com
Responses
JSON is returned by all API responses, including errors.
HTTP Headers
API returns typical JSON structured like this:
HTTP/1.1 200 OK
Access-Control-Expose-Headers:
Content-Type: application/json; charset=UTF-8
Date: Sat, 08 Jul 2017 04:51:44 GMT
Server: nginx/1.6.3
X-Burst-Limit: 900
X-Burst-Limit-Reset: 1499489248
X-Burst-Remaining: 898
X-Daily-Limit: 100
X-Daily-Limit-Reset: 1499558399
X-Daily-Remaining: 96
Content-Length: 617
Connection: keep-alive
Header | Description |
---|---|
X-Daily-Limit | The number of allowed requests in the current period (daily) |
X-Daily-Remaining | The number of remaining requests in the current period (daily) |
X-Daily-Limit-Reset | The number of seconds left in the current period (daily) |
X-Burst-Limit | The number of allowed requests in the current period (15 min blocks) |
X-Burst-Remaining | The number of remaining requests in the current period (15 min blocks) |
X-Burst-Limit-Reset | The number of seconds left in the current period (15 min blocks) |
X-Retry-After | If surpassed X-Daily-Limit or X-Burst-Limit , - X-Retry-After is the unix time when requests can be submitted again (15 min or daily depending on which limit is hit) |
Successful Response Object
API returns typical JSON structured like this:
{
"responseCode": 200,
"data": [
{
"foo": "bar",
"bar": "foo"
}
],
"totalResults": 1,
"startingAfter": 1,
"hasMore": false
}
Attribute | Description |
---|---|
responseCode integer |
Http response code of the request |
data object or array |
Requested data in an array or object format |
totalResults integer |
Total number of results found (Note not the returned count) |
startingAfter integer |
an object ID that defines your place in the list |
hasMore bool |
Whether or not there are more objects available after this set. If false , this is the end of the list |
Error Response Object
API returns typical error JSON structured like this:
{
"responseCode": 400,
"error": {
"code": 4000,
"message": "invalid request - expected integer but received string"
}
}
Attribute | Description |
---|---|
responseCode integer |
Http response code of the request |
error object |
Object containing the error details |
code integer |
Internal Webconnex error code |
message integer |
A friendly error message |
HTTP Response Code
webconnex uses standard HTTP response codes to indicate the success or failure of an API request. In general, codes in the 2xx range indicate success, codes in the 4xx range indicate a request error and codes in the 5xx range indicate an internal error.
Below are a summary of the HTTP response codes used by the webconnex API.
Code / Message | Description |
---|---|
200 OK |
The request was successful, we updated/created the resource and the responded body contains the representation |
204 OK DELETED |
The request was successful; the resource was deleted |
400 BAD REQUEST |
The data provided or requested failed validation. Inspect the request and / or response body for details |
401 UNAUTHORIZED |
The supplied credentials, if any, are not sufficient to create or update the resource |
402 REQUEST FAILED |
The parameters were valid but the request failed |
404 NOT FOUND |
Resource was not found |
405 METHOD NOT ALLOWED |
You can't POST or PUT to the resource |
429 TOO MANY REQUESTS |
Your application is sending too many requests |
500 SERVER ERROR |
We couldn't create or update the resource, please try again |
502 SERVER ERROR |
We couldn't create or update the resource, please contact support |
Paging
https://api.webconnex.com/parent?limit=100&startingAfter=45&sort=desc
Webconnex utilizes cursor-based pagination via the startingAfter
and limit
URI parameters. Paging can be used for any resource the returns a collection of objects.
Parameter | Description |
---|---|
sort string |
Sets the returned order asc or desc |
limit string (optional, default is 50) |
A limit on the number of objects to be returned, between 1 and 50 |
startingAfter integer |
startingAfter is an object id that defines your place in the list |
pretty boolean |
If True JSON response is returned in Tab formatted style |
Expand
Example Usage
https://api.webconnex.com/parent/id/child?[]expand=registrants,tickets,subscription,inventory
Multiple endpoints allow for a []expand=?
URI parameter to be passed to return additional information about a resources children. You can expand multiple objects at once by identifying multiple items in the expand array.
Endpoints which support []expand
include:
Endpoints
Method | Path | Resource |
---|---|---|
GET | /ping | Ping |
GET | /search/orders | Order |
GET | /search/orders/{id} | Order |
GET | /search/registrants | Registrant |
GET | /search/registrants/{id} | Registrant |
GET | /search/tickets | Ticket |
GET | /search/tickets/{id} | Ticket |
GET | /search/subscriptions | Subscription |
GET | /search/subscriptions/{id} | Subscription |
GET | /search/transactions | Transaction |
GET | /search/transactions/{id} | Transaction |
GET | /search/customers | Customer |
GET | /search/customers/{id} | Customer |
GET | /forms | FormLookup |
GET | /forms/{id} | Form |
GET | /forms/{formID}/inventory | Inventory |
GET | /coupons/global | Coupon |
GET | /coupons/form/{formID} | Coupon |
POST | /coupons | Coupon |
GET | /coupons/{couponID} | Coupon |
PUT | /coupons/{couponID} | Coupon |
DELETE | /coupons/{couponID} | Coupon |
GET | /webhooks | Webhook |
POST | /webhooks | Webhook |
GET | /webhooks/{id} | Webhook |
PUT | /webhooks/{id} | Webhook |
DELETE | /webhooks/{id} | Webhook |
GET | /webhooks/{id} /logs | Webhook Log |
GET | /webhooks/{webhookID}/logs/{id} | Webhook Log |
POST | /webhooks/{webhookID}/resend/{logID} | Webhook Log |
Ping/Healthcheck
curl -X "GET" "https://api.webconnex.com/v2/public/ping?pretty=true" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func request() {
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/ping", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
(function(callback) {
'use strict';
const httpTransport = require('http');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '80',
path: '/v2/public/ping',
method: 'GET',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func Request() {
Alamofire.request("https://api.webconnex.com/v2/public/ping", method: .get)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/ping",
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
API returns JSON structured like this:
{
"responseCode": 200,
"data": "Some nights I always win, I always win..."
}
Simple endpoint to provide a health check endpoint to make sure we are alive and kickin'.
HTTP Request
GET /v2/public/ping
Attribute | Description |
---|---|
responseCode Integer |
Response code of the request |
data string |
Random string to use as data payload |
Orders
Search Orders
curl "https://api.webconnex.com/v2/public/search/orders?product=redpodium.com&pretty=true" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func search() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/search/orders?product=redpodium.com", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
parseFormErr := req.ParseForm()
if parseFormErr != nil {
fmt.Println(parseFormErr)
}
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/search/orders",
params={
"product": "redpodium.com",
},
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/search/orders?product=redpodium.com',
method: 'GET',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func searchRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Add URL parameters
let urlParams = [
"product":"redpodium.com",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/search/orders", method: .get, parameters: urlParams, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": {
"id": 11465,
"displayId": "01BPYMMEE9NM4WJAJMG",
"customerId": 22,
"registrants": [
{
"id": 16163,
"displayId": "01BPYMJZHFJF34CZJJR",
"formId": 874,
"formName": "Your Form",
"formAccRef": "MMBRCTNS",
"customerId": 22,
"orderId": 11465,
"orderDisplayId": "01BPYMMEE9NM4WJAJMG",
"orderNumber": "MMBRCTNS-001-1",
"status": "completed",
"total": "2.65",
"amount": "2.65",
"dateCreated": "2016-03-09T15:59:57Z",
"dateUpdated": "2016-03-09T15:59:57Z"
}
],
"billing": {
"firstName": "John",
"lastName": "Doe",
"address": {
"city": "Sacramento",
"country": "US",
"postalCode": "95814",
"state": "CA",
"street1": "455 Capital Mall, Suite 604"
}
},
"formId": 874,
"formName": "Your Form",
"formAccRef": "MMBRCTNS",
"status": "3",
"orderNumber": "MMBRCTNS-001-1",
"total": "2.65",
"currency": "USD",
"dateCreated": "2016-03-09T15:59:57Z",
"dateUpdated": "2016-05-02T22:32:22Z"
},
"totalResults": 1
}
HTTP Request
GET /v2/public/search/orders
Request Params
Parameter | Description |
---|---|
product string (required) |
Product url to search |
formId integer (optional) |
Return results with matching registration form Id |
status string (optional) |
Return matching statuses |
sort string (optional) |
|
limit string (optional) |
Limit number of results returned |
greaterThanId integer (optional) |
Return results greater than provided id |
formId integer (optional) |
Return results matching the form id |
customerId integer (optional) |
Return results matching the customer id |
orderEmail string (optional) |
Return results matching provided email |
orderNumber string (optional) |
Return results matching provided order number |
lessThanId integer (optional) |
Return results less than provided id |
startingAfter integer (optional) |
Return results with id's after value |
dateCreatedBefore timestamp (optional) |
Return results created before date |
dateCreatedAfter timestamp (optional) |
Return results created after date |
dateUpdatedBefore timestamp (optional) |
Return results updated before date |
dateUpdatedAfter timestamp (optional) |
Return results updated after date |
Response Object
Attribute | Description |
---|---|
id integer |
Unique id of the order |
displayId string |
Unique hash used as civilian facing id |
customerId integer |
Unique id of the associated customer |
billing object |
Billing object containing name and address details associated with order |
formId integer |
Id of the form that associated with the order |
formName string |
Name of the form that created order |
formAccRef string |
Accounting reference of the form that created order |
status string |
Status of the order |
orderNumber string |
Order number |
total float |
Total amount of the order |
currency string |
Currency of the order |
dateCreated timestamp |
Timestamp of the creation of the order |
dateUpdated timestamp |
Timestamp the order was last updated (optional) |
View Order by Id
curl "https://api.webconnex.com/v2/public/search/orders/11623?pretty=true&product=redpodium.com" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func view() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/search/orders/11623?product=redpodium.com", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
parseFormErr := req.ParseForm()
if parseFormErr != nil {
fmt.Println(parseFormErr)
}
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/search/orders/11623",
params={
"product": "redpodium.com",
},
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/search/orders/11623?product=redpodium.com',
method: 'GET',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func viewRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Add URL parameters
let urlParams = [
"product":"redpodium.com",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/search/orders/11623", method: .get, parameters: urlParams, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": {
"id": 11465,
"displayId": "01BPYMJZHFJF34CZJJR",
"customerId": 22,
"billing": {
"firstName": "John",
"lastName": "Doe",
"address": {
"city": "Sacramento",
"country": "US",
"postalCode": "95814",
"state": "CA",
"street1": "455 Capital Mall, Suite 604"
}
},
"formId": 874,
"formName": "Your Form",
"formAccRef": "MMBRCTNS",
"status": "3",
"orderNumber": "MMBRCTNS-001-1",
"total": "2.65",
"currency": "USD",
"dateCreated": "2016-03-09T15:59:57Z",
"dateUpdated": "2016-05-02T22:32:22Z"
},
"totalResults": 1
}
HTTP Request
GET /v2/public/search/orders/{id}?product=
Request Params
Parameter | Description |
---|---|
id string (required) |
Id of the requested order |
product string (required) |
Product url to search |
[]expand string (optional) |
Return additional children (registrants, tickets, transactions) |
Response Object
Attribute | Description |
---|---|
id integer |
Unique id of the order |
displayId string |
Unique hash used as civilian facing id |
customerId integer |
Unique id of the associated customer |
billing object |
Billing object containing name and address details associated with order |
formId integer |
Id of the form that associated with the order |
formName string |
Name of the form that created order |
formAccRef string |
Accounting reference string of the form that created order |
status string |
Status of the order |
orderNumber string |
Order number |
total float |
Total amount of the order |
currency string |
Currency of the order |
dateCreated timestamp |
Timestamp of the creation of the order |
dateUpdated timestamp |
Timestamp the order was last updated (optional) |
Registrants
Search Registrants
curl "https://api.webconnex.com/v2/public/search/registrants?product=redpodium.com2&pretty=true" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func search() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/search/registrants?product=redpodium.com2", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
parseFormErr := req.ParseForm()
if parseFormErr != nil {
fmt.Println(parseFormErr)
}
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/search/registrants",
params={
"product": "redpodium.com2",
},
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/search/registrants?product=redpodium.com2',
method: 'GET',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func searchRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Add URL parameters
let urlParams = [
"product":"redpodium.com2",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/search/registrants", method: .get, parameters: urlParams, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": [{
"id": 18450,
"displayId": "01BTB7W4KPJMTNFDP33",
"formId": 1440,
"formName": "deposit test",
"formAccRef": "DPSTTST",
"orderCustomerId": 2342,
"customerId": 8302,
"orderId": 13429,
"orderDisplayId": "01BTB7W4K8E9TZM6BFR",
"orderNumber": "DPSTTST-0010005",
"orderEmail": "tobias.funke@webconnex.com",
"orderEmailOptIn": true,
"status": "completed",
"total": "50.00",
"amount": "50.00",
"currency": "USD",
"fieldData": [
{
"label": "Registration Options",
"path": "registrationOptions",
"value": "option2"
},
{
"amount": "50",
"label": "Option 2",
"path": "registrationOptions.option2",
"value": "true"
}
],
"checkedIn": true,
"dateCheckedIn": "2017-10-30T23:20:42Z",
"dateCreated": "2017-09-18T19:36:38Z",
"dateUpdated": "2017-10-30T23:20:42Z"
}, {
"id": 18389,
"displayId": "01BR83E95HK7VA0V27Z",
"formId": 40632,
"formName": "My Form",
"formAccRef": "MTTFRFRM",
"orderCustomerId": 2342,
"customerId": 8374,
"orderId": 13380,
"orderDisplayId": "01BR83E955WK32T88BP",
"orderNumber": "MTTFRFRM-0010003",
"orderEmail": "gob.bluth@webconnex.com",
"status": "completed",
"total": "0",
"amount": "0",
"currency": "GBP",
"fieldData": [
{
"label": "T-Shirt Size",
"path": "tshirt",
"value": "mensSmall"
},
{
"amount": "0",
"label": "Men's Small",
"path": "tshirt.mensSmall",
"value": "true"
}
],
"checkedIn": false,
"dateCreated": "2017-08-23T17:50:02.964566996Z",
"dateUpdated": "2017-08-23T17:50:02.991678878Z"
}],
"totalResults": 2
}
HTTP Request
GET /v2/public/search/registrants?product=
Request Params
Parameter | Description |
---|---|
product string (required) |
Name of the product you to search for registrants against |
formId integer (optional) |
Id of the form you want to filter registrants by |
status string (optional) |
Status string of the registrant you want to filter on |
sort string (optional) |
|
limit string (optional) |
Limits the number of results returned |
displayId string (optional) |
Filter registrants to only show results matching the registrant display id |
orderId integer (optional) |
Filter registrants to only show results matching a provided order id |
orderDisplayId string (optional) |
Filter registrants to only show results matching a provided order display id |
greaterThanId integer (optional) |
Filter registrants to only show results greater than provided id |
formId integer (optional) |
Filter registrants to only show results matching the form id |
orderCustomerId integer (optional) |
Filter registrants to only show results matching order customer id |
customerId integer (optional) |
Filter registrants to only show results matching the customer id |
orderEmail string (optional) |
Filter registrants to only show results matching the email |
orderBillingLastName string (optional) |
Filter registrants to only show results matching a provided billing last name |
orderNumber string (optional) |
Filter registrants to only show results matching the order number |
lessThanId integer (optional) |
Filter registrants to only show results less than provided id |
startingAfter integer (optional) |
Filter registrants to only show results with id's after value |
dateCheckedInBefore timestamp (optional) |
Filter registrants to only show results checked in before date |
dateCheckedInAfter timestamp (optional) |
Filter registrants to only show results checked in after date |
dateCreatedBefore timestamp (optional) |
Filter registrants to only show results created before date |
dateCreatedAfter timestamp (optional) |
Filter registrants to only show results created after date |
dateUpdatedBefore timestamp (optional) |
Filter registrants to only show results updated before date |
dateUpdatedAfter timestamp (optional) |
Filter registrants to only show results updated after date |
Response Object
Attribute | Description |
---|---|
id integer |
Unique id of the registrant |
displayId string |
Unique hash used as civilian facing id |
formId integer |
Id of the form that associated with the order |
formName string |
Name of the form that created order |
formAccRef string |
Accounting reference string of the form that created order |
orderCustomerId integer |
Unique id of the associated customer to the order |
customerId integer |
Unique id of the associated customer |
orderId integer |
Unique id of the order |
orderDisplayId string |
Unique hash used as civilian facing id |
orderNumber string |
Order number |
orderEmail string |
Email of the associated order |
orderEmailOptIn bool |
Email Opt-In selection |
amount float |
Total cost of the registrant |
outstandingAmount float |
Total unpaid amount on the registrant |
billing object |
Billing object containing name and address details associated with order |
sourceType string |
Where the registrant originated |
status string |
Status of the registrant |
total float |
Total cost of the registrant |
fieldData object |
|
currency string |
Currency code |
checkedIn bool |
|
dateCheckedIn timestamp |
Timestamp the registrant was checked in |
dateCreated timestamp |
Timestamp of the creation of the registrant |
dateUpdated timestamp |
Timestamp the registrant was last updated (optional) |
View Registrant by Id
curl "https://api.webconnex.com/v2/public/search/registrants/2233110?pretty=true&product=redpodium.com" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func view() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/search/registrants/2233110?product=redpodium.com", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/search/registrants/2233110",
params={
"product": "redpodium.com",
},
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/search/registrants/2233110?product=redpodium.com',
method: 'GET',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func viewRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/search/registrants/2233110?product=redpodium.com", method: .get, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": [
{
"id": 1,
"displayId": "01BPYMMEE9NM4WJAJMG",
"customerId": 1,
"orderCustomerId": 12,
"billing": {
"firstName": "John",
"lastName": "Doe",
"address": {
"city": "Sacramento",
"country": "US",
"postalCode": "111111",
"state": "CA",
"street1": "1233 SW Any St."
}
},
"formId": 1,
"formName": "test",
"formAccRef": "TST12",
"status": "3",
"orderNumber": "TST12-001-4",
"total": "40.00",
"currency": "USD",
"checkedIn": false,
"dateCreated": "2016-01-28T00:11:10Z",
"dateUpdated": "2016-05-02T22:32:22Z"
}
]
}
HTTP Request
GET /v2/public/search/registrants/{id}?product=
Request Params
Parameter | Description |
---|---|
id string (required) |
Id of the requested order |
product string (required) |
Product to search against |
[]expand string (optional) |
Return requested children (memberships, subscriptions) |
Response Object
Attribute | Description |
---|---|
id integer |
Unique id of the registrant |
displayId string |
Unique hash used as civilian facing id |
formId integer |
Id of the form that associated with the order |
formName string |
Name of the form that created order |
formAccRef string |
Accounting reference string of the form that created order |
orderCustomerId integer |
Unique id of the associated customer to the order |
customerId integer |
Unique id of the associated customer |
orderId integer |
Unique id of the order |
orderDisplayId string |
Unique hash used as civilian facing id |
orderNumber string |
Order number |
orderEmail string |
Email of the associated order |
orderEmailOptIn bool |
Email Opt-In selection |
amount float |
Total cost of the registrant |
billing object |
Billing object containing name and address details associated with order |
sourceType string |
Where the registrant originated |
status string |
Status of the registrant |
total float |
Total cost of the registrant |
fieldData object |
|
currency string |
Currency code |
checkedIn bool |
|
dateCheckedIn timestamp |
Timestamp the registrant was checked in |
dateCreated timestamp |
Timestamp of the creation of the registrant |
dateUpdated timestamp |
Timestamp the registrant was last updated (optional) |
Check In by Id
curl -X "POST" "https://api.webconnex.com/v2/public/registrant/check-in?pretty=true" \
-H "apiKey: <YOUR API KEY>" \
-d $'{
"id": 17492,
"date": "2016-05-02T22:32:22Z"
}'
package main
import (
"fmt"
"io/ioutil"
"net/http"
"strings"
)
func sendRequest() {
body := strings.NewReader(`{
"id": 17553,
"date": "2016-05-02T22:32:22Z"
}`)
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("POST", "https://api.webconnex.com/v2/public/registrant/check-in", body)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
req.Header.Add("Content-Type", "text/plain; charset=utf-8")
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.post(
url="https://api.webconnex.com/v2/public/registrant/check-in",
headers={
"apiKey": "<YOUR API KEY>",
"Content-Type": "text/plain; charset=utf-8",
},
data="{
\"id\": 17553,
\"date\": \"2016-05-02T22:32:22Z\"
}"
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/registrant/check-in',
method: 'POST',
headers: {"apiKey":"<YOUR API KEY>","Content-Type":"text/plain; charset=utf-8"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("{\n \"id\": 17553,\n \"date\": \"2016-05-02T22:32:22Z\"\n}")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func sendRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
"Content-Type":"text/plain; charset=utf-8",
]
// Custom Body Encoding
struct RawDataEncoding: ParameterEncoding {
public static var `default`: RawDataEncoding { return RawDataEncoding() }
public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
var request = try urlRequest.asURLRequest()
request.httpBody = "{\n \"id\": 17553,\n \"date\": \"2016-05-02T22:32:22Z\"\n}".data(using: String.Encoding.utf8, allowLossyConversion: false)
return request
}
}
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/registrant/check-in", method: .post, encoding: RawDataEncoding.default, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": {
"id": 17553,
"date": "2017-08-24T00:00:00Z"
},
"totalResults": 1
}
HTTP Request
POST /v2/public/registrant/check-in
Request Params
Parameter | Description |
---|---|
id string (required) |
Id of the registrant |
date timestamp (optional) |
The timestamp to set as the checkin date |
Response Object
Attribute | Description |
---|---|
id integer |
Unique id of the registrant checked in |
date timestamp |
The timestamp set for checkin |
Check In by Display Id
curl -X "POST" "https://api.webconnex.com/v2/public/registrant/check-in?pretty=true" \
-H "apiKey: <YOUR API KEY>" \
-d $'{
"displayId": "01BPYMMEE9NM4WJAJMG",
"date": "2016-05-02T22:32:22Z"
}'
package main
import (
"fmt"
"io/ioutil"
"net/http"
"strings"
)
func sendRequest() {
body := strings.NewReader(`{
"displayId": "01BPYMMEE9NM4WJAJMG",
"date": "2016-05-02T22:32:22Z"
}`)
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("POST", "https://api.webconnex.com/v2/public/registrant/check-in", body)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
req.Header.Add("Content-Type", "text/plain; charset=utf-8")
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.post(
url="https://api.webconnex.com/v2/public/registrant/check-in",
headers={
"apiKey": "<YOUR API KEY>",
"Content-Type": "text/plain; charset=utf-8",
},
data="{
\"displayId\": \"01BPYMMEE9NM4WJAJMG\",
\"date\": \"2016-05-02T22:32:22Z\"
}"
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/registrant/check-in',
method: 'POST',
headers: {"apiKey":"<YOUR API KEY>","Content-Type":"text/plain; charset=utf-8"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("{\n \"displayId\": \"01BPYMMEE9NM4WJAJMG\",\n \"date\": \"2016-05-02T22:32:22Z\"\n}")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func sendRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
"Content-Type":"text/plain; charset=utf-8",
]
// Custom Body Encoding
struct RawDataEncoding: ParameterEncoding {
public static var `default`: RawDataEncoding { return RawDataEncoding() }
public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
var request = try urlRequest.asURLRequest()
request.httpBody = "{\n \"displayId\": \"01BPYMMEE9NM4WJAJMG\",\n \"date\": \"2016-05-02T22:32:22Z\"\n}".data(using: String.Encoding.utf8, allowLossyConversion: false)
return request
}
}
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/registrant/check-in", method: .post, encoding: RawDataEncoding.default, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": {
"displayId": "01BPYMMEE9NM4WJAJMG",
"date": "2017-08-24T00:00:00Z"
},
"totalResults": 1
}
HTTP Request
POST /v2/public/registrant/check-in
Request Params
Parameter | Description |
---|---|
displayId string (required) |
Display Id of the registrant |
date timestamp (optional) |
The timestamp to set as the checkin date |
Response Object
Attribute | Description |
---|---|
displayId string |
Display Id of the registrant checked in |
date timestamp |
The timestamp set for checkin |
Check Out by Id
curl -X "POST" "https://api.webconnex.com/v2/public/registrant/check-out?pretty=true" \
-H "apiKey: <YOUR API KEY>" \
-d $'{
"id": 17492,
"date": "2016-05-02T22:32:22Z"
}'
package main
import (
"fmt"
"io/ioutil"
"net/http"
"strings"
)
func sendRequest() {
body := strings.NewReader(`{
"id": 17553,
"date": "2016-05-02T22:32:22Z"
}`)
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("POST", "https://api.webconnex.com/v2/public/registrant/check-out", body)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
req.Header.Add("Content-Type", "text/plain; charset=utf-8")
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.post(
url="https://api.webconnex.com/v2/public/registrant/check-out",
headers={
"apiKey": "<YOUR API KEY>",
"Content-Type": "text/plain; charset=utf-8",
},
data="{
\"id\": 17553,
\"date\": \"2016-05-02T22:32:22Z\"
}"
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/registrant/check-out',
method: 'POST',
headers: {"apiKey":"<YOUR API KEY>","Content-Type":"text/plain; charset=utf-8"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("{\n \"id\": 17553,\n \"date\": \"2016-05-02T22:32:22Z\"\n}")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func sendRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
"Content-Type":"text/plain; charset=utf-8",
]
// Custom Body Encoding
struct RawDataEncoding: ParameterEncoding {
public static var `default`: RawDataEncoding { return RawDataEncoding() }
public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
var request = try urlRequest.asURLRequest()
request.httpBody = "{\n \"id\": 17553,\n \"date\": \"2016-05-02T22:32:22Z\"\n}".data(using: String.Encoding.utf8, allowLossyConversion: false)
return request
}
}
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/registrant/check-out", method: .post, encoding: RawDataEncoding.default, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": {
"id": 17553,
"date": "2017-08-24T00:00:00Z"
},
"totalResults": 1
}
HTTP Request
POST /v2/public/registrant/check-out
Request Params
Parameter | Description |
---|---|
id string (required) |
Id of the registrant |
date timestamp (optional) |
The timestamp to set as the checkout date |
Response Object
Attribute | Description |
---|---|
id integer |
Unique id of the registrant checked out |
date timestamp |
The timestamp set for checkout |
Check Out by Display Id
curl -X "POST" "https://api.webconnex.com/v2/public/registrant/check-out?pretty=true" \
-H "apiKey: <YOUR API KEY>" \
-d $'{
"displayId": "01BPYMMEE9NM4WJAJMG",
"date": "2016-05-02T22:32:22Z"
}'
package main
import (
"fmt"
"io/ioutil"
"net/http"
"strings"
)
func sendRequest() {
body := strings.NewReader(`{
"displayId": "01BPYMMEE9NM4WJAJMG",
"date": "2016-05-02T22:32:22Z"
}`)
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("POST", "https://api.webconnex.com/v2/public/registrant/check-out", body)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
req.Header.Add("Content-Type", "text/plain; charset=utf-8")
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.post(
url="https://api.webconnex.com/v2/public/registrant/check-out",
headers={
"apiKey": "<YOUR API KEY>",
"Content-Type": "text/plain; charset=utf-8",
},
data="{
\"displayId\": "01BPYMMEE9NM4WJAJMG",
\"date\": \"2016-05-02T22:32:22Z\"
}"
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/registrant/check-out',
method: 'POST',
headers: {"apiKey":"<YOUR API KEY>","Content-Type":"text/plain; charset=utf-8"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("{\n \"displayId\": \"01BPYMMEE9NM4WJAJMG\",\n \"date\": \"2016-05-02T22:32:22Z\"\n}")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func sendRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
"Content-Type":"text/plain; charset=utf-8",
]
// Custom Body Encoding
struct RawDataEncoding: ParameterEncoding {
public static var `default`: RawDataEncoding { return RawDataEncoding() }
public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
var request = try urlRequest.asURLRequest()
request.httpBody = "{\n \"displayId\": \"01BPYMMEE9NM4WJAJMG\",\n \"date\": \"2016-05-02T22:32:22Z\"\n}".data(using: String.Encoding.utf8, allowLossyConversion: false)
return request
}
}
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/registrant/check-out", method: .post, encoding: RawDataEncoding.default, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": {
"displayId": "01BPYMMEE9NM4WJAJMG",
"date": "2017-08-24T00:00:00Z"
},
"totalResults": 1
}
HTTP Request
POST /v2/public/registrant/check-out
Request Params
Parameter | Description |
---|---|
displayId string (required) |
Display Id of the registrant |
date timestamp (optional) |
The timestamp to set as the check out date |
Response Object
Attribute | Description |
---|---|
displayId string |
Display Id of the registrant checked out |
date timestamp |
The timestamp set for check out |
Tickets
Search Tickets
curl "https://api.webconnex.com/v2/public/search/tickets?product=ticketspice.com&pretty=true" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func search() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/search/tickets?product=ticketspice.com", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
parseFormErr := req.ParseForm()
if parseFormErr != nil {
fmt.Println(parseFormErr)
}
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/search/tickets",
params={
"product": "ticketspice.com",
},
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function (callback) {
"use strict";
const httpTransport = require("https");
const responseEncoding = "utf8";
const httpOptions = {
hostname: "api.webconnex.com",
port: "443",
path: "/v2/public/search/tickets?product=ticketspice.com",
method: "GET",
headers: { apiKey: "<YOUR API KEY>" },
};
httpOptions.headers["User-Agent"] = "node " + process.version;
const request = httpTransport
.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = "";
res
.on("data", (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
} else {
responseStr = responseStr + chunk;
}
})
.on("end", () => {
responseStr =
responseBufs.length > 0
? Buffer.concat(responseBufs).toString(responseEncoding)
: responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on("error", (error) => {
callback(error);
});
request.write("");
request.end();
})((error, statusCode, headers, body) => {
console.log("ERROR:", error);
console.log("STATUS:", statusCode);
console.log("HEADERS:", JSON.stringify(headers));
console.log("BODY:", body);
});
func searchRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Add URL parameters
let urlParams = [
"product":"ticketspice.com",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/search/tickets", method: .get, parameters: urlParams, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": [
{
"id": 1,
"displayId": "01BPYMMEE9NM4WJAJMG",
"customerId": 1,
"orderCustomerId": 1,
"billing": {
"firstName": "John",
"lastName": "Doe",
"address": {
"city": "Sacramento",
"country": "US",
"postalCode": "111111",
"state": "CA",
"street1": "1233 SW Any St."
}
},
"formId": 1,
"formName": "test",
"formAccRef": "TST12",
"fieldData": [
{
"amount": "5",
"label": "Fee",
"path": "fee"
},
{
"amount": "0",
"path": "fee.lineItemFee"
}
],
"status": "3",
"scanCount": "1",
"dateLastScanned": "2022-09-21T22:00:29Z",
"orderNumber": "TST12-001-4",
"orderId": 13378,
"orderDisplayId": "01BR7TCB1HM7HE1WBW0",
"orderEmail": "support@webconnex.com",
"levelLabel": "Ticket Level One",
"levelKey": "adult",
"amount": "35",
"fee": "5",
"total": "40.00",
"currency": "USD",
"eventDate": "2017-08-23T07:00:00Z",
"dateCreated": "2016-01-28T00:11:10Z",
"dateUpdated": "2016-05-02T22:32:22Z"
},
{
"id": 2,
"displayId": "01BPYMJZHFJF34CZJJR",
"customerId": 1,
"orderCustomerId": 1,
"billing": {
"firstName": "John",
"lastName": "Doe",
"address": {
"city": "Sacramento",
"country": "US",
"postalCode": "111111",
"state": "CA",
"street1": "1233 SW Any St."
}
},
"formId": 1,
"formName": "test",
"formAccRef": "TST12",
"fieldData": [
{
"label": "Checkbox",
"path": "checkbox"
}
],
"status": "3",
"orderNumber": "TST12-001-4",
"orderId": 13378,
"orderDisplayId": "01BR7TCB1HM7HE1WBW0",
"orderEmail": "john.doe@webconnex.com",
"levelLabel": "Ticket Level One",
"levelKey": "adult",
"amount": "35",
"fee": "5",
"total": "40.00",
"currency": "USD",
"dateCreated": "2016-01-28T00:11:10Z",
"dateUpdated": "2016-05-02T22:32:22Z"
}
],
"totalResults": 2
}
HTTP Request
GET /v2/public/search/tickets?product=
Request Params
Parameter | Description |
---|---|
product string (required) |
Name of the product you to search for tickets on |
formId integer (optional) |
Id of the form you want to filter tickets by |
status string (optional) |
Status string of the order you want to filter on |
sort string (optional) |
|
limit string (optional) |
Limits the number of results returned |
orderId integer (optional) |
Filter tickets to only show results matching a provided order id |
orderDisplayId string (optional) |
Filter tickets to only show results matching a provided order display id |
greaterThanId integer (optional) |
Filter tickets to only show results greater than provided id |
formId integer (optional) |
Filter tickets to only show results matching the form id |
orderCustomerId integer (optional) |
Filter tickets to only show results matching the orders customer id |
customerId integer (optional) |
Filter tickets to only show results matching the customer id |
orderEmail string (optional) |
Filter tickets to only show results matching the email |
orderNumber string (optional) |
Filter tickets to only show results matching the order number |
lessThanId integer (optional) |
Filter tickets to only show results less than provided id |
startingAfter integer (optional) |
Filter tickets to only show results with id's after value |
dateCreatedBefore timestamp (optional) |
Filter tickets to only show results created before date |
dateCreatedAfter timestamp (optional) |
Filter tickets to only show results created after date |
dateUpdatedBefore timestamp (optional) |
Filter tickets to only show results updated before date |
dateUpdatedAfter timestamp (optional) |
Filter tickets to only show results updated after date |
Response Object
Attribute | Description |
---|---|
id integer |
Unique id of the ticket |
displayId string |
Unique hash used as civilian facing id |
orderCustomerId integer |
Unique id of the associated customer to the order |
customerId integer |
Unique id of the associated customer |
billing object |
Billing object containing name and address details associated with order |
formId integer |
Id of the form that associated with the order |
formName string |
Name of the form that created ticket |
formAccRef string |
Accounting reference string of the form that created ticket |
fieldData object |
|
sourceType string |
Where the ticket originated |
status string |
Status of the ticket |
scanCount integer |
Number of valid scans |
dateLastScanned timestamp |
Timestamp of most recent scan (if applicable) |
orderId integer |
Unique id of the order |
orderDisplayId string |
Unique hash used as civilian facing id |
orderNumber string |
Order number |
orderEmail string |
Email of the associated order |
total float |
Total cost of the ticket |
fee float |
Ticket Fee |
amount float |
Ticket Amount |
levelLabel string |
|
levelKey string |
|
eventDate timestamp |
|
dateCreated timestamp |
Timestamp of the creation of the ticket |
dateUpdated timestamp |
Timestamp the ticket was last updated (optional) |
View Ticket by Id
curl "https://api.webconnex.com/v2/public/search/tickets/2233110?pretty=true&product=ticketspice.com" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func view() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/search/tickets/2233110?product=ticketspice.com", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/search/tickets/810343",
params={
"product": "ticketspice.com",
},
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function (callback) {
"use strict";
const httpTransport = require("https");
const responseEncoding = "utf8";
const httpOptions = {
hostname: "api.webconnex.com",
port: "443",
path: "/v2/public/search/tickets/810343?product=ticketspice.com",
method: "GET",
headers: { apiKey: "<YOUR API KEY>" },
};
httpOptions.headers["User-Agent"] = "node " + process.version;
const request = httpTransport
.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = "";
res
.on("data", (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
} else {
responseStr = responseStr + chunk;
}
})
.on("end", () => {
responseStr =
responseBufs.length > 0
? Buffer.concat(responseBufs).toString(responseEncoding)
: responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on("error", (error) => {
callback(error);
});
request.write("");
request.end();
})((error, statusCode, headers, body) => {
console.log("ERROR:", error);
console.log("STATUS:", statusCode);
console.log("HEADERS:", JSON.stringify(headers));
console.log("BODY:", body);
});
func viewRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Add URL parameters
let urlParams = [
"product":"ticketspice.com",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/search/tickets/810343", method: .get, parameters: urlParams, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": [
{
"id": 1,
"displayId": "01BPYMMEE9NM4WJAJMG",
"customerId": 1,
"orderCustomerId": 1,
"billing": {
"firstName": "John",
"lastName": "Doe",
"address": {
"city": "Sacramento",
"country": "US",
"postalCode": "111111",
"state": "CA",
"street1": "1233 SW Any St."
}
},
"formId": 1,
"formName": "test",
"formAccRef": "TST12",
"status": "3",
"scanCount": "1",
"dateLastScanned": "2022-09-21T22:00:29Z",
"fieldData": [
{
"amount": "5",
"label": "Fee",
"path": "fee"
},
{
"amount": "0",
"path": "fee.lineItemFee"
}
],
"orderNumber": "TST12-001-4",
"orderId": 13378,
"orderDisplayId": "01BR7TCB1HM7HE1WBW0",
"orderEmail": "support@webconnex.com",
"levelLabel": "Ticket Level One",
"levelKey": "adult",
"amount": "35",
"fee": "5",
"total": "40.00",
"currency": "USD",
"eventDate": "2017-08-23T07:00:00Z",
"dateCreated": "2016-01-28T00:11:10Z",
"dateUpdated": "2016-05-02T22:32:22Z"
}
]
}
HTTP Request
GET /v2/public/search/tickets/{id}
Request Params
Parameter | Description |
---|---|
id string (required) |
Id of the requested order |
URI Params
Parameter | Description |
---|---|
product string (required) |
Product to search against |
Response Object
Attribute | Description |
---|---|
id integer |
Unique id of the ticket |
displayId string |
Unique hash used as civilian facing id |
orderCustomerId integer |
Unique id of the associated customer to the order |
customerId integer |
Unique id of the associated customer |
billing object |
Billing object containing name and address details associated with order |
formId integer |
Id of the form that associated with the order |
formName string |
Name of the form that created ticket |
formAccRef string |
Accounting reference string of the form that created ticket |
fieldData object |
|
sourceType string |
Where the ticket originated |
status string |
Status of the ticket |
scanCount integer |
Number of valid scans |
dateLastScanned timestamp |
Timestamp of most recent scan (if applicable) |
orderId integer |
Unique id of the order |
orderDisplayId string |
Unique hash used as civilian facing id |
orderNumber string |
Order number |
orderEmail string |
Email of the associated order |
total float |
Total cost of the ticket |
fee float |
Ticket Fee |
amount float |
Ticket Amount |
levelLabel string |
|
levelKey string |
|
eventDate timestamp |
|
dateCreated timestamp |
Timestamp of the creation of the ticket |
dateUpdated timestamp |
Timestamp the ticket was last updated (optional) |
Subscriptions
Search Subscriptions
curl "https://api.webconnex.com/v2/public/search/subscriptions?product=givingfuel.com&pretty=true" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func search() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/search/subscriptions?product=givingfuel.com", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
parseFormErr := req.ParseForm()
if parseFormErr != nil {
fmt.Println(parseFormErr)
}
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/search/subscriptions",
params={
"product": "givingfuel.com",
},
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
// request Search
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/search/subscriptions?product=givingfuel.com',
method: 'GET',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func searchRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Add URL parameters
let urlParams = [
"product":"givingfuel.com",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/search/subscriptions", method: .get, parameters: urlParams, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": [
{
"id": 1,
"displayId": "1",
"formId": 213213,
"formName": "Wizard Form",
"formAccRef": "WZRDFRM",
"customerId": 4623,
"orderId": 212431,
"orderDisplayId": "01BXQDE87DF34643DS",
"orderNumber": "FRM-001040F",
"orderEmail": "help@webconnex.com",
"status": "active",
"amount": "10.00",
"deductible": "10.00",
"adjustment": "0.00",
"currency": "USD",
"category": " fund name",
"schedule": "16th of every month",
"dateLast": "2017-09-16T00:00:14.202655988Z",
"dateNext": "2017-10-16T10:00:00Z",
"paymentsRemaining": "unlimited",
"dateCreated": "2017-08-16T14:40:57Z",
"dateUpdated": "2017-09-16T00:00:14.292478947Z"
}, {
"id": 2,
"displayId": "2",
"formId": 243243,
"formName": "My Form",
"formAccRef": "FRMPRTII",
"customerId": 2234,
"orderId": 2234,
"orderDisplayId": "01BXQDEDKY1TFNQ40BZ",
"orderNumber": "FRMPRTII-001040F",
"orderEmail": "help@webconnex.com",
"status": "active",
"amount": "20.00",
"deductible": "20.00",
"adjustment": "0.00",
"currency": "USD",
"category": " fund name",
"schedule": "16th of every month",
"dateLast": "2017-09-16T00:00:14.202655988Z",
"dateNext": "2017-10-16T10:00:00Z",
"paymentsRemaining": "56",
"dateCreated": "2017-08-16T14:40:57Z",
"dateUpdated": "2017-09-16T00:00:14.292478947Z"
}
],
"totalResults": 2
}
HTTP Request
GET /v2/public/search/subscriptions?product=
Request Params
Parameter | Description |
---|---|
product string (required) |
Name of the product you to search for subscriptions against |
formId integer (optional) |
Filter subscriptions to only show results matching the form id |
status string (optional) |
Status string of the subscription you want to filter on |
sort string (optional) |
|
limit string (optional) |
Limits the number of results returned |
orderId integer (optional) |
Filter subscriptions to only show results matching a provided order id |
orderDisplayId string (optional) |
Filter subscriptions to only show results matching a provided order display id |
orderEmail string (optional) |
Filter subscriptions to only show results matching the email |
orderNumber string (optional) |
Filter subscriptions to only show results matching the order number |
greaterThanId integer (optional) |
Filter subscriptions to only show results greater than provided id |
customerId integer (optional) |
Filter subscriptions to only show results matching the customer id |
lessThanId integer (optional) |
Filter subscriptions to only show results less than provided id |
startingAfter integer (optional) |
Filter subscriptions to only show results with id's after value |
dateCreatedBefore timestamp (optional) |
Filter subscriptions to only show results created before date |
dateCreatedAfter timestamp (optional) |
Filter subscriptions to only show results created after date |
dateUpdatedBefore timestamp (optional) |
Filter subscriptions to only show results updated before date |
dateUpdatedAfter timestamp (optional) |
Filter subscriptions to only show results updated after date |
dateNextAfter timestamp (optional) |
Filter subscriptions to only show results scheduled to run after date |
dateLastAfter timestamp (optional) |
Filter subscriptions to only show results processed after date |
Response Object
Attribute | Description |
---|---|
id integer |
Unique id of the subscription |
displayId string |
Unique hash used as civilian facing id |
customerId integer |
Unique id of the associated customer |
orderId integer |
Unique id of the order |
orderDisplayId string |
Unique hash used as civilian facing id |
orderNumber string |
Order number |
orderEmail string |
Email of the associated order |
formId integer |
Id of the form that associated with the order |
formName string |
Name of the form that created subscription |
formAccRef string |
Accounting reference string of the form that created order |
status string |
Status of the subscription |
amount float |
Total amount of the subscription |
deductible float |
Deductible amount |
adjustment float |
Adjustment to be applied to next payment |
currency string |
Currency of the subscription |
category string |
Fund designated |
schedule string |
Human readable schedule |
dateLast timestamp |
Timestamp of the last successful payment |
dateNext timestamp |
Timestamp of the next schedule payment |
paymentsRemaining string |
String representation of the number of remaining payments |
dateCreated timestamp |
Timestamp object was created |
dateUpdated timestamp |
Timestamp object was last updated (optional) |
View Subscription by Id
curl "https://api.webconnex.com/v2/public/search/subscriptions/49675?pretty=true&product=givingfuel.com" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func view() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/search/subscriptions/49675?product=givingfuel.com", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
parseFormErr := req.ParseForm()
if parseFormErr != nil {
fmt.Println(parseFormErr)
}
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/search/subscriptions/49675",
params={
"product": "givingfuel.com",
},
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/search/subscriptions/49675?product=givingfuel.com',
method: 'GET',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func viewRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Add URL parameters
let urlParams = [
"product":"givingfuel.com",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/search/subscriptions/49675", method: .get, parameters: urlParams, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": [
{
"id": 23432,
"displayId": "23432",
"formId": 123,
"formName": "Wizard Form",
"formAccRef": "WZRDFRM",
"customerId": 123,
"orderId": 231,
"orderDisplayId": "234FDSDGDF234123",
"orderNumber": "FRM-001040F",
"orderEmail": "help@webconnex.com",
"status": "active",
"amount": "10.00",
"deductible": "10.00",
"adjustment": "0.00",
"currency": "USD",
"category": " fund name",
"schedule": "16th of every month",
"dateLast": "2017-09-16T00:00:14.202655988Z",
"dateNext": "2017-10-16T10:00:00Z",
"paymentsRemaining": "unlimited",
"dateCreated": "2017-08-16T14:40:57Z",
"dateUpdated": "2017-09-16T00:00:14.292478947Z"
}
]
}
HTTP Request
GET /v2/public/search/subscriptions/{id}?product=
Request Params
Parameter | Description |
---|---|
id string (required) |
Id of the requested order |
product string (required) |
Product to search against |
Response Object
Attribute | Description |
---|---|
id integer |
Unique id of the subscription |
displayId string |
Unique hash used as civilian facing id |
customerId integer |
Unique id of the associated customer |
orderId integer |
Unique id of the order |
orderDisplayId string |
Unique hash used as civilian facing id |
orderNumber string |
Order number |
orderEmail string |
Email of the associated order |
formId integer |
Id of the form that associated with the order |
formName string |
Name of the form that created subscription |
formAccRef string |
Accounting reference string of the form that created order |
status string |
Status of the subscription |
amount float |
Total amount of the subscription |
deductible float |
Deductible amount |
adjustment float |
Adjustment to be applied to next payment |
currency string |
Currency of the subscription |
category string |
Fund designated |
schedule string |
Human readable schedule |
dateLast timestamp |
Timestamp of the last successful payment |
dateNext timestamp |
Timestamp of the next schedule payment |
paymentsRemaining string |
String representation of the number of remaining payments |
dateCreated timestamp |
Timestamp object was created |
dateUpdated timestamp |
Timestamp object was last updated (optional) |
Transactions
Search Transactions
curl "https://api.webconnex.com/v2/public/search/transactions?product=regfox.com&pretty=true" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func search() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/search/transactions?product=regfox.com", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
parseFormErr := req.ParseForm()
if parseFormErr != nil {
fmt.Println(parseFormErr)
}
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/search/transactions",
params={
"product": "regfox.com",
},
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/search/transactions?product=regfox.com',
method: 'GET',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func searchRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Add URL parameters
let urlParams = [
"product":"regfox.com",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/search/transactions", method: .get, parameters: urlParams, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": [
{
"id": 15665,
"displayId": "15665",
"formId": 1440,
"formName": "test campaign",
"formAccRef": "DPSTTST",
"customerId": 8302,
"orderId": 13429,
"orderDisplayId": "01BTB7W4K8E9TZM6BFR",
"orderNumber": "DPSTTST-0010005",
"orderEmail": "Job.Bluth@webconnex.com",
"billing": {
"firstName": "Job",
"lastName": "Bluth",
"address": {
"city": "Sacramento",
"country": "US",
"postalCode": "95814",
"state": "CA",
"street1": "455 Capitol Mall STE 604"
}
},
"transactionType": "charge",
"total": "50.00",
"deductible": "0.00",
"currency": "USD",
"paymentMethod": "card",
"paymentType": "MAST",
"paymentMask": "MAST-2424",
"gatewayReference": "TESTERCHARGE",
"status": "completed",
"dateCreated": "2017-09-18T19:36:38Z",
"dateUpdated": "2017-09-18T19:36:39Z"
}, {
"id": 14854,
"displayId": "14854",
"formId": 1440,
"formName": "deposit test",
"formAccRef": "DPSTTST",
"customerId": 1179,
"orderId": 13112,
"orderDisplayId": "1494519032659439046",
"orderNumber": "DPSTTST-0010004",
"orderEmail": "george.Micheal@webconnex.com",
"billing": {
"firstName": "George",
"lastName": "Micheal",
"address": {
"city": "Sacramento",
"country": "US",
"postalCode": "95814",
"state": "CA",
"street1": "455 Capitol Mall"
}
},
"transactionType": "charge",
"total": "500.00",
"deductible": "0.00",
"currency": "USD",
"paymentMethod": "card",
"paymentType": "VISA",
"paymentMask": "VISA-3112",
"gatewayReference": "TESTERCHARGE",
"status": "completed",
"dateCreated": "2017-05-11T16:10:33Z",
"dateUpdated": "2017-05-11T16:10:33Z"
}
],
"totalResults": 2
}
HTTP Request
GET /v2/public/search/transactions?product=
Request Params
Parameter | Description |
---|---|
product string (required) |
Name of the product you to search for transactions against |
formId integer (optional) |
Id of the form you want to filter transactions by |
status string (optional) |
Status string of the transaction you want to filter on |
sort string (optional) |
|
limit string (optional) |
Limits the number of results returned |
orderId integer (optional) |
Filter to only show results matching a provided order id |
type string (optional) |
Filter to only show results matching a provided type (types include: charge, refund, voucher) |
paymentMethod string (optional) |
Filter to only show results matching a payment methods (types include: card, check, offline) |
orderDisplayId string (optional) |
Filter to only show results matching a provided order display id |
greaterThanId integer (optional) |
Filter to only show results greater than provided id |
formId integer (optional) |
Filter to only show results matching the form id |
customerId integer (optional) |
Filter to only show results matching the customer id |
orderEmail string (optional) |
Filter to only show results matching the email |
orderNumber string (optional) |
Filter to only show results matching the order number |
txReference string (optional) |
Filter to only show results matching the transaction reference |
lessThanId integer (optional) |
Filter to only show results less than provided id |
startingAfter integer (optional) |
Filter to only show results with id's after value |
dateCreatedBefore timestamp (optional) |
Filter to only show results created before date |
dateCreatedAfter timestamp (optional) |
Filter to only show results created after date |
dateUpdatedBefore timestamp (optional) |
Filter to only show results updated before date |
dateUpdatedAfter timestamp (optional) |
Filter to only show results updated after date |
Response Object
Attribute | Description |
---|---|
id integer |
Unique Id |
displayId string |
Unique hash used as civilian facing id |
formId integer |
Id of the form that created transaction |
formName string |
Name of the form that created transaction |
formAccRef string |
Accounting reference string of the form that created transaction |
customerId integer |
Unique id of the associated customer |
orderId integer |
Unique id of the order |
orderDisplayId string |
Unique hash used as civilian facing id |
orderNumber string |
Order number |
orderEmail string |
Email of the associated order |
billing object |
Billing object containing name and address details associated with transaction |
transactionType string |
Type of transaction |
total float |
Total cost of the transaction |
deductible float |
Total tax deductible amount |
currency string |
Currency code |
paymentMethod string |
Payment method used |
paymentType string |
Payment type used |
paymentMask string |
Payment Mask |
gatewayReference string |
Transaction Reference provided by gateway |
gatewayMessage string |
Message returned by the the gateway |
parentTransactionId string |
Transaction to which a refund was applied (optional) |
sourceType string |
Where the transaction originated |
status string |
Status of the transaction |
dateCreated timestamp |
Timestamp of the creation of the transaction |
dateUpdated timestamp |
Timestamp the transaction was last updated (optional) |
View Transaction by Id
curl "https://api.webconnex.com/v2/public/search/transactions/14291?pretty=true&product=regfox.com" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func view() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/search/transactions/14291?product=regfox.com", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
parseFormErr := req.ParseForm()
if parseFormErr != nil {
fmt.Println(parseFormErr)
}
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/search/transactions/14291",
params={
"product": "regfox.com",
},
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/search/transactions/14291?product=regfox.com',
method: 'GET',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func viewRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Add URL parameters
let urlParams = [
"product":"regfox.com",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/search/transactions/14291", method: .get, parameters: urlParams, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": [
{
"id": 14854,
"displayId": "14854",
"formId": 1440,
"formName": "deposit test",
"formAccRef": "DPSTTST",
"customerId": 1179,
"orderId": 13112,
"orderDisplayId": "1494519032659439046",
"orderNumber": "DPSTTST-0010004",
"orderEmail": "george.Micheal@webconnex.com",
"billing": {
"firstName": "George",
"lastName": "Micheal",
"address": {
"city": "Sacramento",
"country": "US",
"postalCode": "95814",
"state": "CA",
"street1": "455 Capitol Mall"
}
},
"transactionType": "charge",
"total": "500.00",
"deductible": "0.00",
"currency": "USD",
"paymentMethod": "card",
"paymentType": "VISA",
"paymentMask": "VISA-3112",
"gatewayReference": "TESTERCHARGE",
"status": "completed",
"dateCreated": "2017-05-11T16:10:33Z",
"dateUpdated": "2017-05-11T16:10:33Z"
}
]
}
HTTP Request
GET /v2/public/search/transactions/{id}?product=
Request Params
Parameter | Description |
---|---|
id string (required) |
Id of the requested transaction |
URI Params
Parameter | Description |
---|---|
product string (required) |
Product to search against |
Response Object
Attribute | Description |
---|---|
id integer |
Unique Id |
displayId string |
Unique hash used as civilian facing id |
formId integer |
Id of the form that created transaction |
formName string |
Name of the form that created transaction |
formAccRef string |
Accounting reference string of the form that created transaction |
customerId integer |
Unique id of the associated customer |
orderId integer |
Unique id of the order |
orderDisplayId string |
Unique hash used as civilian facing id |
orderNumber string |
Order number |
orderEmail string |
Email of the associated order |
billing object |
Billing object containing name and address details associated with transaction |
transactionType string |
Type of transaction |
total float |
Total cost of the transaction |
deductible float |
Total tax deductible amount |
currency string |
Currency code |
paymentMethod string |
Payment method used |
paymentType string |
Payment type used |
paymentMask string |
Payment Mask |
gatewayReference string |
transaction Reference provided by gateway |
gatewayMessage string |
Message returned by the the gateway |
parentTransactionId string |
Transaction to which a refund was applied (optional) |
sourceType string |
Where the transaction originated |
status string |
Status of the transaction |
dateCreated timestamp |
Timestamp of the creation of the transaction |
dateUpdated timestamp |
Timestamp the transaction was last updated (optional) |
Customers
Important Note: While a customer Id is assigned as time of registration; new customer records can take up to 5 minutes to be created and available in the Public API.
Search Customers
curl "https://api.webconnex.com/v2/public/search/customers?product=redpodium.com&pretty=true" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func search() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/search/customers?product=redpodium.com", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
parseFormErr := req.ParseForm()
if parseFormErr != nil {
fmt.Println(parseFormErr)
}
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/search/customers",
params={
"product": "redpodium.com",
"pretty": "true",
},
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/search/customers?product=redpodium.com',
method: 'GET',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func searchRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Add URL parameters
let urlParams = [
"product":"redpodium.com",
"pretty":"true",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/search/customers", method: .get, parameters: urlParams, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": [
{
"id": 8233,
"email": "help@webconnex.com",
"amount": "0",
"address": {
"firstName": "John",
"lastName": "Doe",
"address": {
"city": "Sacramento",
"country": "US",
"phone": "",
"postalCode": "97008",
"state": "CA",
"street1": "123 main street",
"street2": ""
}
},
"dateCreated": "2016-09-12T20:39:08Z",
"dateUpdated": "2016-10-06T04:25:10Z"
},
{
"id": 8228,
"email": "jack@awesomeco.co",
"amount": "0",
"billing": {
"firstName": "Jack",
"lastName": "Bauer",
"address": {
"city": "Sacramento",
"country": "US",
"phone": "",
"postalCode": "95814",
"state": "CA",
"street1": "123 main street",
"street2": ""
}
},
"dateCreated": "2016-06-07T17:53:50Z",
"dateUpdated": "2016-10-06T04:25:10Z"
}
],
"totalResults": 2
}
HTTP Request
GET /v2/public/search/customers?product=
Request Params
Parameter | Description |
---|---|
product string (required) |
Name of the product you to search for customers against |
email string (optional) |
Billing email you want to search on |
sort string (optional) |
|
limit string (optional) |
Limits the number of results returned |
greaterThanId integer (optional) |
Filter customers to only show results greater than provided id |
lessThanId integer (optional) |
Filter customers to only show results less than provided id |
startingAfter integer (optional) |
Filter customers to only show results with id's after value |
dateCreatedBefore timestamp (optional) |
Filter customers to only show results created before date |
dateCreatedAfter timestamp (optional) |
Filter customers to only show results created after date |
dateUpdatedBefore timestamp (optional) |
Filter customers to only show results updated before date |
dateUpdatedAfter timestamp (optional) |
Filter customers to only show results updated after date |
Response Object
Attribute | Description |
---|---|
id integer |
Unique id of the customer |
email string |
Email of the associated customer |
billing object |
Billing object containing name and address details associated with customer |
amount float |
Total of customer transactions |
dateCreated timestamp |
Timestamp of the creation of the customer |
dateUpdated timestamp |
Timestamp the customer was last updated (optional) |
View Customer by Id
curl "https://api.webconnex.com/v2/public/search/customers/1155061?product=redpodium.com&pretty=true" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func view() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/search/customers/1155061?product=redpodium.com", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
parseFormErr := req.ParseForm()
if parseFormErr != nil {
fmt.Println(parseFormErr)
}
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/search/customers/1155061",
params={
"pretty": "true",
"product": "redpodium.com",
},
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
// request View
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/search/customers/1155061?product=redpodium.com',
method: 'GET',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func viewRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Add URL parameters
let urlParams = [
"pretty":"true",
"product":"redpodium.com",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/search/customers/1155061", method: .get, parameters: urlParams, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": [
{
"id": 8228,
"email": "jack@awesomeco.co",
"amount": "0",
"billing": {
"firstName": "Jack",
"lastName": "Bauer",
"address": {
"city": "Sacramento",
"country": "US",
"phone": "",
"postalCode": "95814",
"state": "CA",
"street1": "123 main street",
"street2": ""
}
},
"dateCreated": "2016-06-07T17:53:50Z",
"dateUpdated": "2016-10-06T04:25:10Z"
}
]
}
HTTP Request
GET /v2/public/search/customers/{id}?product=
Request Params
Parameter | Description |
---|---|
id string (required) |
Id of the requested customer |
product string (required) |
Product to search against |
Response Object
Parameter | Description |
---|---|
id integer |
Unique id of the customer |
email string |
Email of the associated customer |
billing object |
Billing object containing name and address details associated with customer |
amount float |
Total of customer transactions |
dateCreated timestamp |
Timestamp of the creation of the customer |
dateUpdated timestamp |
Timestamp the customer was last updated (optional) |
Memberships
Search Memberships
curl "https://api.webconnex.com/v2/public/search/memberships?product=regfox.com&pretty=true" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func search() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/search/memberships?product=regfox.com", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
parseFormErr := req.ParseForm()
if parseFormErr != nil {
fmt.Println(parseFormErr)
}
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/search/memberships",
params={
"product": "regfox.com",
},
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/search/memberships?product=regfox.com',
method: 'GET',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func searchRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Add URL parameters
let urlParams = [
"product":"regfox.com",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/search/memberships", method: .get, parameters: urlParams, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": [
{
"id": 3000018,
"memberId": "3000000938781",
"customerId": 3000000,
"registrantId": 3000230,
"email": "lindsay@webconnex.com",
"fee": 10,
"expirationDate": "2019-02-12T00:00:00Z",
"autoRenew": true,
"status": "active",
"dateCreated": "2017-08-02T01:13:39Z",
"firstName": "Lindsay",
"lastName": "Bluth",
"levelId": 3000004,
"levelHash": "1476292756717792168",
"levelName": "Gold",
"levelFee": 100,
"levelExpirationType": "fixed date",
"levelExpirationSchedule": "0 0 0 12 2 *",
"levelNextRenewalDate": "2019-02-12T00:00:00Z",
"levelAllowAutoRenew": true,
"levelActive": true,
"paymentMethod": "card",
"paymentMask": "VISA-1111"
},
{
"id": 3000016,
"memberId": "3000000375348",
"importedMemberId": "A23FHE",
"customerId": 3000003,
"registrantId": 3000149,
"email": "maeby@webconnex.com",
"fee": 10,
"expirationDate": "2019-02-12T08:00:00Z",
"autoRenew": true,
"status": "active",
"dateCreated": "2018-01-10T00:49:56Z",
"dateUpdated": "2018-01-15T18:04:00Z",
"firstName": "Maeby",
"lastName": "Fünke",
"levelId": 3000003,
"levelHash": "42987290842374892364",
"levelName": "Silver",
"levelFee": 10,
"levelExpirationType": "anniversary quarterly",
"levelNextRenewalDate": "2020-06-01T00:00:00Z",
"levelAllowAutoRenew": true,
"levelActive": true,
"paymentMethod": "card",
"paymentMask": "VISA-1111"
}
],
"totalResults": 2,
}
HTTP Request
GET /v2/public/search/memberships?product=
Request Params
Parameter | Description |
---|---|
product string (required) |
Name of the product |
formId integer (optional) |
Id of the form to filter by |
status string (optional) |
Status to filter by |
sort string (optional) |
|
limit string (optional) |
Limits the number of results returned |
greaterThanId integer (optional) |
Filter to only show results greater than provided id |
registrantId integer (optional) |
Filter to only show results matching the registrant id |
customerId integer (optional) |
Filter to only show results matching the customer id |
email string (optional) |
Filter to only show results matching the email |
status string (optional) |
Filter to only show results matching the status |
levelId string (optional) |
Filter to those associated with the level id |
levelHash string (optional) |
Filter to those associated with the level hash |
lessThanId integer (optional) |
Filter to only show results less than provided id |
startingAfter integer (optional) |
Filter to only show results with id's after value |
dateExpiresBefore timestamp (optional) |
Filter to only show results expired before date |
dateExpiresAfter timestamp (optional) |
Filter to only show results expired after date |
dateCreatedBefore timestamp (optional) |
Filter to only show results created before date |
dateCreatedAfter timestamp (optional) |
Filter to only show results created after date |
dateUpdatedBefore timestamp (optional) |
Filter to only show results updated before date |
dateUpdatedAfter timestamp (optional) |
Filter to only show results updated after date |
Response Object
Attribute | Description |
---|---|
id integer |
Unique Id used for storage and reference |
memberId integer |
Unique Id generated by Webconnex |
importedMemberId integer |
Unique Id imported by user |
customerId integer |
Unique id of the associated customer |
registrantId integer |
Unique id of the associated registrant |
email integer |
Email address of the membership |
fee float |
Fee associated upon renewal |
expirationDate float |
Date the membership will expire |
autoRenew bool |
States whether the member has autoRenew enabled |
status string |
Current status of the membership |
firstName integer |
First name |
lastName integer |
Last name |
levelId integer |
Unique Id of the membership level the member is attached to |
levelHash string |
Unique hash of the membership level the member is attached to |
levelName string |
Name of the attached membership level |
levelFee float |
Fee associated to the membership level |
levelExpirationType string |
Defines the renewal schedule type |
levelNextRenewalDate timestamp |
The Date the level is set to renew |
levelAllowAutoRenew bool |
Level allows for auto-renewal |
levelActive bool |
Defines if the level is currently active |
paymentMethod string |
Payment method used |
paymentMask string |
Payment Mask |
dateCreated timestamp |
Timestamp of the creation of the membership |
dateUpdated timestamp |
Timestamp the membership was last updated (optional) |
View Membership by Id
curl "https://api.webconnex.com/v2/public/search/memberships/2233110?pretty=true&product=regfox.com" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func view() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/search/memberships/2233110?product=regfox.com", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/search/memberships/810343",
params={
"product": "regfox.com",
},
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/search/memberships/810343?product=regfox.com',
method: 'GET',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func viewRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Add URL parameters
let urlParams = [
"product":"regfox.com",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/search/memberships/810343", method: .get, parameters: urlParams, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": [
{
"id": 3000018,
"memberId": "2000934381",
"importedMemberId": "abc123",
"customerId": 3000000,
"registrantId": 3000230,
"email": "tobias@webconnex.com",
"fee": 10,
"expirationDate": "2015-02-12T00:00:00Z",
"autoRenew": true,
"status": "inactive",
"dateCreated": "2017-08-02T01:13:39Z",
"firstName": "Tobias",
"lastName": "Fünke",
"levelId": 3000004,
"levelHash": "1476292756717792168",
"levelName": "Bronze",
"levelFee": 100,
"levelExpirationType": "yearly",
"levelNextRenewalDate": "2021-09-20T00:00:00Z",
"levelAllowAutoRenew": true,
"levelActive": true,
"paymentMethod": "card",
"paymentMask": "VISA-1111"
}
]
}
HTTP Request
GET /v2/public/search/memberships/{id}
Request Params
Parameter | Description |
---|---|
id string (required) |
Id of the requested order |
URI Params
Parameter | Description |
---|---|
product string (required) |
Product to search against |
Response Object
Attribute | Description |
---|---|
id integer |
Unique Id used for storage and reference |
memberId integer |
Unique Id generated by Webconnex |
importedMemberId integer |
Unique Id imported by user |
customerId integer |
Unique id of the associated customer |
registrantId integer |
Unique id of the associated registrant |
email integer |
Email address of the membership |
fee float |
Fee associated upon renewal |
expirationDate float |
Date the membership will expire |
autoRenew bool |
States whether the member has autoRenew enabled |
status string |
Current status of the membership |
firstName integer |
First name |
lastName integer |
Last name |
levelId integer |
Unique Id of the membership level the member is attached to |
levelHash string |
Unique hash of the membership level the member is attached to |
levelName string |
Name of the attached membership level |
levelFee float |
Fee associated to the membership level |
levelExpirationType string |
Defines the renewal schedule type |
levelNextRenewalDate timestamp |
The Date the level is set to renew |
levelAllowAutoRenew bool |
Level allows for auto-renewal |
levelActive bool |
Defines if the level is currently active |
paymentMethod string |
Payment method used |
paymentMask string |
Payment Mask |
dateCreated timestamp |
Timestamp of the creation of the membership |
dateUpdated timestamp |
Timestamp the membership was last updated (optional) |
Forms
List Forms
curl -X "GET" "https://api.webconnex.com/v1/public/forms?pretty=true" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func sendRequest() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/forms?product=redpodium.com", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
parseFormErr := req.ParseForm()
if parseFormErr != nil {
fmt.Println(parseFormErr)
}
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/forms",
params={
"product": "redpodium.com",
},
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/forms?product=redpodium.com',
method: 'GET',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func list() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Add URL parameters
let urlParams = [
"product":"redpodium.com",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/forms", method: .get, parameters: urlParams, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": [
{
"id": 1203002,
"name": "Form Number 1",
"product": "ticketspice.com",
"status": "open",
"dateCreated": "2016-04-07T01:09:58Z",
"dateUpdated": "2016-04-07T01:10:01Z"
},
{
"id": 1203002,
"name": "Form Number 2",
"product": "ticketspice.com",
"status": "closed",
"dateCreated": "2016-04-07T01:09:40Z",
"dateUpdated": "2016-04-07T01:09:43Z"
}
]
}
HTTP Request
GET /v2/public/forms
Request Params
Parameter | Description |
---|---|
product string Optional |
Name of the product you want to list forms for |
[]expand string Optional |
Note: pass inventory to see the form's inventory |
dateCreatedBefore timestamp (optional) |
Filter forms to only show results created before date |
dateCreatedAfter timestamp (optional) |
Filter forms to only show results created before date |
dateUpdatedBefore timestamp (optional) |
Filter forms to only show results updated before date |
dateUpdatedAfter timestamp (optional) |
Filter forms to only show results updated after date |
datePublishedBefore timestamp (optional) |
Filter forms to only show results published before date |
datePublishedAfter timestamp (optional) |
Filter forms to only show results published after date |
greaterThanId integer (optional) |
Filter forms to only show results greater than provided id |
lessThanId integer (optional) |
Filter forms to only show results less than provided id |
Response Object
Attribute | Description |
---|---|
id integer |
Unique id |
name string |
Name |
status string |
Status of the form |
dateCreated timestamp |
Timestamp creation |
dateUpdated timestamp |
Timestamp last updated (optional) |
View Form
curl -X "GET" "https://api.webconnex.com/v2/public/forms/15689?pretty=true" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func view() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/forms/123123?%5B%5Dexpand=inventory", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
parseFormErr := req.ParseForm()
if parseFormErr != nil {
fmt.Println(parseFormErr)
}
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/forms/123123",
params={
"[]expand": "inventory",
},
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
// request View
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/forms/123123?%5B%5Dexpand=inventory',
method: 'GET',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func viewRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Add URL parameters
let urlParams = [
"pretty":"true",
"[]expand":"inventory",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/forms/123123", method: .get, parameters: urlParams, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": {
"id": 1,
"name": "Donation Form",
"product": "givingfuel.com",
"accRef": "DNTFORM",
"fields": {
"type": "form",
"triggers": [],
"header": {
"type": "header",
"key": "header"
},
"registrants": {
"type": "registrants",
"key": "registrants"
},
"billing": {
"type": "billing",
"key": "billing",
"header": {},
"name": {
"type": "name",
"key": "name",
"attributes": {},
"firstName": {},
"lastName": {},
"mi": {}
},
"address": {
"type": "address",
"key": "address",
"attributes": {},
"street1": {},
"street2": {},
"city": {},
"state": {},
"postalCode": {},
"country": {}
},
"paymentMethod": {
"type": "paymentMethod",
"key": "paymentMethod",
"attributes": {},
"card": {},
"check": {},
"offline": {}
},
"card": {
"type": "creditCard",
"key": "card",
"cardNumber": {},
"expMonth": {},
"expYear": {},
"cvvCode": {}
},
"check": {
"type": "check",
"key": "check",
"bankName": {},
"accountType": {
"type": "accountType",
"key": "accountType",
"checking": {},
"savings": {}
},
"routingNumber": {
"type": "routingNumber",
"key": "routingNumber"
},
"accountNumber": {
"type": "accountNumber",
"key": "accountNumber"
}
},
"email": {
"type": "email",
"key": "email"
}
},
"submit": {},
"footer": {}
},
"status": "open",
"currency": "USD",
"timeZone": "America/Los_Angeles",
"dateCreated": "2016-01-28T00:11:10Z"
},
"totalResults": 1
}
HTTP Request
GET /v2/public/forms/{id}
Request Params
Parameter | Description |
---|---|
id Integer (required) |
Id of the form that is being requested |
Response Object
Attribute | Description |
---|---|
id Integer |
Unique id |
name string |
Name |
status string |
Status |
accRef string |
Accounting Reference |
fields object |
A collection of fields that make up the form |
timeZone string |
Timezone code for the form |
dateCreated timestamp |
Timestamp of creation |
dateUpdated timestamp |
Timestamp last updated (optional) |
Fields Object
Attribute | Description |
---|---|
type string |
The root of the fields is always set to type form |
attributes object |
Key/Value attributes related to the field set |
triggers object |
A collection of actions/conditions to provide logic to the form |
header object Required |
Fields in set in the header. Always present on the form (Display only fields). |
registrants object (required) |
Main data collection fields. Repeated for each registrant when using "multireg" forms. (registrants.attributes.multireg === true) |
billing object Required |
Billing fields for the form. Not used if the billing is disabled on the form. |
footer object (required) |
Fields in set in the footer. Always present on the form (Display only fields). |
Coupons
List Global Coupons
curl "https://api.webconnex.com/v2/public/coupons/global?product=regfox.com&pretty=true" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func requescoupon() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/coupons/global", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
parseFormErr := req.ParseForm()
if parseFormErr != nil {
fmt.Println(parseFormErr)
}
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
(function (callback) {
"use strict";
const httpTransport = require("http");
const responseEncoding = "utf8";
const httpOptions = {
hostname: "api.webconnex.com",
port: "80",
path: "/v2/public/coupons/global",
method: "GET",
headers: { apiKey: "<YOUR API KEY>" },
};
httpOptions.headers["User-Agent"] = "node " + process.version;
const request = httpTransport
.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = "";
res
.on("data", (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
} else {
responseStr = responseStr + chunk;
}
})
.on("end", () => {
responseStr =
responseBufs.length > 0
? Buffer.concat(responseBufs).toString(responseEncoding)
: responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on("error", (error) => {
callback(error);
});
request.write("");
request.end();
})((error, statusCode, headers, body) => {
console.log("ERROR:", error);
console.log("STATUS:", statusCode);
console.log("HEADERS:", JSON.stringify(headers));
console.log("BODY:", body);
});
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/coupons/global",
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
func couponRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Add URL parameters
let urlParams = [
"product":"redpodium.com",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/coupons/global", method: .get, parameters: urlParams, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": [
{
"id": 1109,
"name": "100% off",
"redeemed": 1,
"currency": "USD",
"available": 1,
"discounts": [
{
"value": "100",
"valueType": "percent"
}
],
"codes": [
{
"code": "free",
"redeemed": 1,
"dateCreated": "2016-01-27T00:13:35Z"
}
],
"dateCreated": "2016-01-27T00:13:35Z"
},
{
"id": 1199,
"name": "HALF OFF",
"redeemed": 4,
"currency": "USD",
"available": -1,
"discounts": [
{
"value": "50",
"valueType": "percent"
}
],
"codes": [
{
"code": "half",
"redeemed": 4,
"dateCreated": "2016-01-27T00:13:35Z"
}
],
"dateCreated": "2016-01-27T00:13:35Z"
}
],
"totalResults": 2
}
HTTP Request
GET /v2/public/coupons/global
Request Params
Parameter | Description |
---|---|
Product string (required) |
Name of the product you to search for coupons on |
sort string (optional) |
|
limit string (optional) |
Limits the number of results returned |
greaterThanId integer (optional) |
|
lessThanId integer (optional) |
|
dateExpiresBefore timestamp (optional) |
|
dateExpiresAfter timestamp (optional) |
|
redeemedGreaterThan integer (optional) |
|
redeemedLessThan integer (optional) |
|
availableGreaterThan integer (optional) |
|
availableLessThan integer (optional) |
|
code string (optional) |
Response Object
Attribute | Description |
---|---|
id integer |
Unique Id of the coupon |
name string |
The name of the coupon |
currency string |
Currency of the coupon |
available integer |
Number of coupons available ([-1] means unlimited) |
redeemed integer |
Number of coupons redeemed |
productId integer |
Unique Id of the corresponding product (2 Givingfuel, 3 RedPodium, 4 RegFox, 5 TicketSpice) |
formId integer |
Restrict the coupons usage to a singe Form (optional) |
discounts array |
Discount associated with coupon |
perTicket bool |
Restrict coupon to a per ticket basis (optional) |
codes array |
Codes associated with coupon |
dateCreated timestamp |
Timestamp of the creation of the coupon |
dateUpdated timestamp |
Timestamp the coupon was last updated (optional) |
Discounts Object
Attribute | Description |
---|---|
value integer |
Integear representing the coupons valaue |
valueType string |
String constant of Fixed or Percentage |
perTicket bool |
Restrict coupon to a per ticket basis (optional) |
distribute bool |
|
limit string |
Codes Object
Attribute | Description |
---|---|
code string |
Coupon Code |
redeemed integer |
Number of coupons redeemed |
dateCreated timestamp |
Timestamp of the creation of the coupon |
dateUpdated timestamp |
Timestamp the coupon was last updated (optional) |
List Form Coupons
curl "https://api.webconnex.com/v2/public/coupons/forms/28609?pretty=true" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func sendListByForm() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/coupons/forms/28609", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
parseFormErr := req.ParseForm()
if parseFormErr != nil {
fmt.Println(parseFormErr)
}
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
// request List By Form
(function (callback) {
"use strict";
const httpTransport = require("https");
const responseEncoding = "utf8";
const httpOptions = {
hostname: "api.webconnex.com",
port: "443",
path: "/v2/public/coupons/forms/28609",
method: "GET",
headers: { apiKey: "<YOUR API KEY>" },
};
httpOptions.headers["User-Agent"] = "node " + process.version;
const request = httpTransport
.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = "";
res
.on("data", (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
} else {
responseStr = responseStr + chunk;
}
})
.on("end", () => {
responseStr =
responseBufs.length > 0
? Buffer.concat(responseBufs).toString(responseEncoding)
: responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on("error", (error) => {
callback(error);
});
request.write("");
request.end();
})((error, statusCode, headers, body) => {
console.log("ERROR:", error);
console.log("STATUS:", statusCode);
console.log("HEADERS:", JSON.stringify(headers));
console.log("BODY:", body);
});
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/coupons/forms/28609",
params={
"pretty": "true",
},
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
func sendListByFormRequest() {
/**
List By Form
get https://api.webconnex.com/v2/public/coupons/forms/28609
*/
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Add URL parameters
let urlParams = [
"pretty":"true",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/coupons/forms/28609", method: .get, parameters: urlParams, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": [
{
"id": 1109,
"name": "Free",
"redeemed": 1,
"currency": "USD",
"available": 1,
"discounts": [
{
"value": "100",
"valueType": "percent"
}
],
"codes": [
{
"code": "free",
"redeemed": 1,
"dateCreated": "2016-01-27T00:13:35Z"
}
],
"dateCreated": "2016-01-27T00:13:35Z"
},
{
"id": 1199,
"name": "HALF OFF",
"redeemed": 4,
"currency": "USD",
"available": -1,
"discounts": [
{
"value": "50",
"valueType": "percent"
}
],
"codes": [
{
"code": "half",
"redeemed": 4,
"dateCreated": "2016-01-27T00:13:35Z"
}
],
"dateCreated": "2016-01-27T00:13:35Z"
}
],
"totalResults": 2
}
HTTP Request
GET /v2/public/coupons/forms/{formId}
Request Params
Parameter | Description |
---|---|
id integer (required) |
Form id to list coupons associated with |
Response Object
Attribute | Description |
---|---|
id integer |
Unique Id of the coupon |
name string |
The name of the coupon |
currency string |
Currency of the coupon |
available integer |
Number of coupons available ([-1] means unlimited) |
redeemed integer |
Number of coupons redeemed |
productId integer |
Unique Id of the corresponding product (2 Givingfuel, 3 RedPodium, 4 RegFox, 5 TicketSpice) |
formId integer |
Restrict the coupons usage to a singe Form (optional) |
discounts array |
Discount associated with coupon |
codes array |
Codes associated with coupon |
dateCreated timestamp |
Timestamp of the creation of the coupon |
dateUpdated timestamp |
Timestamp the coupon was last updated (optional) |
Discounts Object
Attribute | Description |
---|---|
value integer |
Integear representing the coupons valaue |
valueType string |
String constant of Fixed or Percentage |
perTicket bool |
Restrict coupon to a per ticket basis (optional) |
distribute bool |
|
limit string |
Codes Object
Attribute | Description |
---|---|
code string |
Coupon Code |
redeemed integer |
Number of coupons redeemed |
dateCreated timestamp |
Timestamp of the creation of the coupon |
dateUpdated timestamp |
Timestamp the coupon was last updated (optional) |
View Coupon by Id
### View Single
curl "https://api.webconnex.com/v2/public/coupons/1250?pretty=true" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func viewSingle() {
// View Single (GET https://api.webconnex.com/v2/public/coupons/1250)
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/coupons/1250", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
parseFormErr := req.ParseForm()
if parseFormErr != nil {
fmt.Println(parseFormErr)
}
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
// request View Single
(function (callback) {
"use strict";
const httpTransport = require("https");
const responseEncoding = "utf8";
const httpOptions = {
hostname: "api.webconnex.com",
port: "443",
path: "/v2/public/coupons/1250",
method: "GET",
headers: { apiKey: "<YOUR API KEY>" },
};
httpOptions.headers["User-Agent"] = "node " + process.version;
const request = httpTransport
.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = "";
res
.on("data", (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
} else {
responseStr = responseStr + chunk;
}
})
.on("end", () => {
responseStr =
responseBufs.length > 0
? Buffer.concat(responseBufs).toString(responseEncoding)
: responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on("error", (error) => {
callback(error);
});
request.write("");
request.end();
})((error, statusCode, headers, body) => {
console.log("ERROR:", error);
console.log("STATUS:", statusCode);
console.log("HEADERS:", JSON.stringify(headers));
console.log("BODY:", body);
});
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
# View Single
# GET https://api.webconnex.com/v2/public/coupons/1250
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/coupons/1250",
params={
"pretty": "true",
},
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
func viewSingleRequest() {
/**
View Single
get https://api.webconnex.com/v2/public/coupons/1250
*/
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Add URL parameters
let urlParams = [
"pretty":"true",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/coupons/1250", method: .get, parameters: urlParams, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": {
"id": 1222,
"formId": 901,
"name": "Series",
"available": -1,
"redeemed": 1,
"currency": "USD",
"discounts": [
{
"perTicket": false,
"value": "100",
"valueType": "percent"
}
],
"codes": [
{
"code": "free1",
"redeemed": 1,
"dateCreated": "2016-08-15T21:25:23Z"
},
{
"code": "free2",
"redeemed": 0,
"dateCreated": "2016-08-15T21:25:23Z"
},
{
"code": "free3",
"redeemed": 0,
"dateCreated": "2016-08-15T21:25:23Z"
}
],
"dateCreated": "2016-08-15T21:25:23Z"
},
"totalResults": 1
}
HTTP Request
GET /v2/public/coupons/{id}
Request Params
Parameter | Description |
---|---|
id integer (required) |
Id of the requested coupon |
Response Object
Attribute | Description |
---|---|
id integer |
Unique Id of the coupon |
name string |
The name of the coupon |
currency string |
Currency of the coupon |
available integer |
Number of coupons available ([-1] means unlimited) |
redeemed integer |
Number of coupons redeemed |
productId integer |
Unique Id of the corresponding product (2 Givingfuel, 3 RedPodium, 4 RegFox, 5 TicketSpice) |
formId integer |
Restrict the coupons usage to a singe Form (optional) |
discounts array |
Discount associated with coupon |
codes array |
Codes associated with coupon |
dateCreated timestamp |
Timestamp of the creation of the coupon |
dateUpdated timestamp |
Timestamp the coupon was last updated (optional) |
expires string |
Date the coupon expires |
Discounts Object
Attribute | Description |
---|---|
value integer |
Integear representing the coupons valaue |
valueType string |
String constant of Fixed or Percentage |
perTicket bool |
Restrict coupon to a per ticket basis (optional) |
distribute bool |
|
limit string |
Codes Object
Attribute | Description |
---|---|
code string |
Coupon Code |
redeemed integer |
Number of coupons redeemed |
dateCreated timestamp |
Timestamp of the creation of the coupon |
dateUpdated timestamp |
Timestamp the coupon was last updated (optional) |
Create Coupon
curl --location --request POST 'https://api.webconnex.com/v2/public/coupons?pretty=true' \
--header 'apiKey: <YOUR API KEY>' \
--header 'Content-Type: application/json; charset=utf-8' \
--data-raw '{
"name": "example create",
"currency": "USD",
"available": 1,
"formId": 23,
"productId": 4,
"discounts": [{
"perTicket": false,
"value": "1",
"valueType": "fixed"
}],
"codes": [{
"code": "coupon code here"
}],
"expires": "2016-10-10T17:14:16Z"
}'
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.webconnex.com/v2/public/coupons?pretty=true"
method := "POST"
payload := strings.NewReader(`{
"name": "example create",
"currency": "USD",
"available": 1,
"formId": 23,
"productId": 4,
"discounts": [{
"perTicket": false,
"value": "1",
"valueType": "fixed"
}],
"codes": [{
"code": "coupon code here"
}],
"expires": "2016-10-10T17:14:16Z"
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("apiKey", "<YOUR API KEY>")
req.Header.Add("Content-Type", "application/json; charset=utf-8")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
import http.client
conn = http.client.HTTPSConnection("api.webconnex.com")
payload = "{\n \"name\": \"example create\",\n \"currency\": \"USD\",\n \"available\": 1,\n \"formId\": 23,\n \"productId\": 4,\n \"discounts\": [{\n \"perTicket\": false,\n \"value\": \"1\",\n \"valueType\": \"fixed\"\n }],\n \"codes\": [{\n \"code\": \"coupon code here\"\n }],\n \"expires\": \"2016-10-10T17:14:16Z\"\n}"
headers = {
'apiKey': '<YOUR API KEY>',
'Content-Type': 'application/json; charset=utf-8'
}
conn.request("POST", "/v2/public/coupons?pretty=true", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
var myHeaders = new Headers();
myHeaders.append("apiKey", "<YOUR API KEY>");
myHeaders.append("Content-Type", "application/json; charset=utf-8");
var raw =
'{\n "name": "example create",\n "currency": "USD",\n "available": 1,\n "formId": 23,\n "productId": 4,\n "discounts": [{\n "perTicket": false,\n "value": "1",\n "valueType": "fixed"\n }],\n "codes": [{\n "code": "coupon code here"\n }],\n "expires": "2016-10-10T17:14:16Z"\n}';
var requestOptions = {
method: "POST",
headers: myHeaders,
body: raw,
redirect: "follow",
};
fetch("https://api.webconnex.com/v2/public/coupons?pretty=true", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.log("error", error));
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif
var semaphore = DispatchSemaphore (value: 0)
let parameters = "{\n \"name\": \"example create\",\n \"currency\": \"USD\",\n \"available\": 1,\n \"formId\": 23,\n \"productId\": 4,\n \"discounts\": [{\n \"perTicket\": false,\n \"value\": \"1\",\n \"valueType\": \"fixed\"\n }],\n \"codes\": [{\n \"code\": \"coupon code here\"\n }],\n \"expires\": \"2016-10-10T17:14:16Z\"\n}"
let postData = parameters.data(using: .utf8)
var request = URLRequest(url: URL(string: "https://api.webconnex.com/v2/public/coupons?pretty=true")!,timeoutInterval: Double.infinity)
request.addValue("<YOUR API KEY>", forHTTPHeaderField: "apiKey")
request.addValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")
request.httpMethod = "POST"
request.httpBody = postData
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
semaphore.signal()
return
}
print(String(data: data, encoding: .utf8)!)
semaphore.signal()
}
task.resume()
semaphore.wait()
API returns JSON structured like this:
{
"responseCode": 200,
"data": [
{
"id": 1339,
"name": "Earlybird 10 off",
"currency": "USD",
"available": 1,
"redeemed": 0,
"productId": 4,
"discounts": [
{
"distribute": false,
"limit": "",
"perTicket": false,
"value": "40",
"valueType": "fixed"
}
],
"codes": [
{
"code": "$10 OFF",
"redeemed": 0,
"dateCreated": "2016-10-10T17:14:16Z",
"dateUpdated": "2022-01-04T19:13:10Z"
}
],
"dateCreated": "2016-10-10T17:14:16Z",
"dateUpdated": "2022-01-04T19:13:10Z",
"expires": "2016-10-10T17:14:16Z"
}
],
"totalResults": 1
}
HTTP Request
POST /v2/public/coupons
Request Object
Attribute | Description |
---|---|
name string |
The name of the coupon |
currency string |
Currency of the coupon |
available integer |
Number of coupons available ([-1] means unlimited) |
productId integer |
Unique Id of the corresponding product (2 Givingfuel, 3 RedPodium, 4 RegFox, 5 TicketSpice) |
formId integer |
Restrict the coupons usage to a singe Form (optional) |
discounts array |
Discount associated with coupon |
codes array |
Codes associated with coupon |
expires timestamp |
Date the coupon expires |
Response Object
Attribute | Description |
---|---|
id integer |
Unique Id of the coupon |
name string |
The name of the coupon |
currency string |
Currency of the coupon |
available integer |
Number of coupons available ([-1] means unlimited) |
redeemed integer |
Number of coupons redeemed |
productId integer |
Unique Id of the corresponding product (2 Givingfuel, 3 RedPodium, 4 RegFox, 5 TicketSpice) |
formId integer |
Restrict the coupons usage to a singe Form (optional) |
discounts array |
Discount associated with coupon |
codes array |
Codes associated with coupon |
dateCreated timestamp |
Timestamp of the creation of the coupon |
dateUpdated timestamp |
Timestamp the coupon was last updated (optional) |
expires timestamp |
Date the coupon expires |
Discounts Object
Attribute | Description |
---|---|
value integer |
Integear representing the coupons valaue |
valueType string |
String constant of Fixed or Percentage |
perTicket bool |
Restrict coupon to a per ticket basis (optional) |
distribute bool |
|
limit string |
Codes Object
Attribute | Description |
---|---|
code string |
Coupon Code |
redeemed integer |
Number of coupons redeemed |
dateCreated timestamp |
Timestamp of the creation of the coupon |
dateUpdated timestamp |
Timestamp the coupon was last updated (optional) |
Edit Coupon
curl --location --request PUT 'https://api.webconnex.com/v2/public/coupons/23?pretty=true' \
--header 'apiKey: <YOUR API KEY>' \
--header 'Content-Type: text/plain; charset=utf-8' \
--data-raw '{
"id": 23,
"name": "example create",
"currency": "USD",
"available": 1,
"formId": 23,
"productId": 4,
"discounts": [{
"id": 23,
"perTicket": false,
"value": "1",
"valueType": "fixed"
}],
"codes": [{
"code": "coupon code here"
}],
"expires": "2016-10-10T17:14:16Z"
}'
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.webconnex.com/v2/public/coupons/23?pretty=true"
method := "PUT"
payload := strings.NewReader(`{
"id": 23,
"name": "example create",
"currency": "USD",
"available": 1,
"formId": 23,
"productId": 4,
"discounts": [{
"id": 23,
"perTicket": false,
"value": "1",
"valueType": "fixed"
}],
"codes": [{
"code": "coupon code here"
}],
"expires": "2016-10-10T17:14:16Z"
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("apiKey", "<YOUR API KEY>")
req.Header.Add("Content-Type", "text/plain; charset=utf-8")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
import http.client
conn = http.client.HTTPSConnection("api.webconnex.com")
payload = "{\n \"id\": 23,\n \"name\": \"example create\",\n \"currency\": \"USD\",\n \"available\": 1,\n \"formId\": 23,\n \"productId\": 4,\n \"discounts\": [{\n \"id\": 23,\n \"perTicket\": false,\n \"value\": \"1\",\n \"valueType\": \"fixed\"\n }],\n \"codes\": [{\n \"code\": \"coupon code here\"\n }],\n \"expires\": \"2016-10-10T17:14:16Z\"\n}"
headers = {
'apiKey': '<YOUR API KEY>',
'Content-Type': 'text/plain; charset=utf-8'
}
conn.request("PUT", "/v2/public/coupons/23?pretty=true", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
var myHeaders = new Headers();
myHeaders.append("apiKey", "<YOUR API KEY>");
myHeaders.append("Content-Type", "text/plain; charset=utf-8");
var raw =
'{\n "id": 23,\n "name": "example create",\n "currency": "USD",\n "available": 1,\n "formId": 23,\n "productId": 4,\n "discounts": [{\n "id": 23,\n "perTicket": false,\n "value": "1",\n "valueType": "fixed"\n }],\n "codes": [{\n "code": "coupon code here"\n }],\n "expires": "2016-10-10T17:14:16Z"\n}';
var requestOptions = {
method: "PUT",
headers: myHeaders,
body: raw,
redirect: "follow",
};
fetch(
"https://api.webconnex.com/v2/public/coupons/23?pretty=true",
requestOptions
)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.log("error", error));
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif
var semaphore = DispatchSemaphore (value: 0)
let parameters = "{\n \"id\": 23,\n \"name\": \"example create\",\n \"currency\": \"USD\",\n \"available\": 1,\n \"formId\": 23,\n \"productId\": 4,\n \"discounts\": [{\n \"id\": 23,\n \"perTicket\": false,\n \"value\": \"1\",\n \"valueType\": \"fixed\"\n }],\n \"codes\": [{\n \"code\": \"coupon code here\"\n }],\n \"expires\": \"2016-10-10T17:14:16Z\"\n}"
let postData = parameters.data(using: .utf8)
var request = URLRequest(url: URL(string: "https://api.webconnex.com/v2/public/coupons/23?pretty=true")!,timeoutInterval: Double.infinity)
request.addValue("<YOUR API KEY>", forHTTPHeaderField: "apiKey")
request.addValue("text/plain; charset=utf-8", forHTTPHeaderField: "Content-Type")
request.httpMethod = "PUT"
request.httpBody = postData
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
semaphore.signal()
return
}
print(String(data: data, encoding: .utf8)!)
semaphore.signal()
}
task.resume()
semaphore.wait()
API returns JSON structured like this:
{
"responseCode": 200,
"data": [
{
"id": 1339,
"name": "Earlybird 10 off",
"currency": "USD",
"available": 1,
"redeemed": 1,
"productId": 4,
"discounts": [
{
"distribute": false,
"limit": "",
"perTicket": false,
"value": "40",
"valueType": "fixed"
}
],
"codes": [
{
"code": "$10 OFF",
"redeemed": 1,
"dateCreated": "2016-10-10T17:14:16Z",
"dateUpdated": "2022-01-04T19:13:10Z"
}
],
"dateCreated": "2016-10-10T17:14:16Z",
"dateUpdated": "2022-01-04T19:13:10Z",
"expires": "2016-10-10T17:14:16Z"
}
],
"totalResults": 1
}
HTTP Request
PUT /v2/public/coupons/{id}
Request Object
Attribute | Description |
---|---|
id integer |
Unique Id of the coupon |
name string |
The name of the coupon |
currency string |
Currency of the coupon |
available integer |
Number of coupons available ([-1] means unlimited) |
redeemed integer |
Number of coupons redeemed |
productId integer |
Unique Id of the corresponding product (2 Givingfuel, 3 RedPodium, 4 RegFox, 5 TicketSpice) |
formId integer |
Restrict the coupons usage to a singe Form (optional) |
discounts array |
Discount associated with coupon |
codes array |
Codes associated with coupon |
dateCreated timestamp |
Timestamp of the creation of the coupon |
dateUpdated timestamp |
Timestamp the coupon was last updated (optional) |
expires timestamp |
Date the coupon expires |
Response Object
Attribute | Description |
---|---|
id integer |
Unique Id of the coupon |
name string |
The name of the coupon |
currency string |
Currency of the coupon |
available integer |
Number of coupons available ([-1] means unlimited) |
redeemed integer |
Number of coupons redeemed |
productId integer |
Unique Id of the corresponding product (2 Givingfuel, 3 RedPodium, 4 RegFox, 5 TicketSpice) |
formId integer |
Restrict the coupons usage to a singe Form (optional) |
discounts array |
Discount associated with coupon |
perTicket bool |
Restrict coupon to a per ticket basis (optional) |
codes array |
Codes associated with coupon |
dateCreated timestamp |
Timestamp of the creation of the coupon |
dateUpdated timestamp |
Timestamp the coupon was last updated (optional) |
expires timestamp |
Date the coupon expires |
Discounts Object
Attribute | Description |
---|---|
value integer |
Integear representing the coupons valaue |
valueType string |
String constant of Fixed or Percentage |
perTicket bool |
Restrict coupon to a per ticket basis (optional) |
distribute bool |
|
limit string |
Codes Object
Attribute | Description |
---|---|
code string |
Coupon Code |
redeemed integer |
Number of coupons redeemed |
dateCreated timestamp |
Timestamp of the creation of the coupon |
dateUpdated timestamp |
Timestamp the coupon was last updated (optional) |
Delete Coupon
curl -X "DELETE" "https://api.webconnex.com/v2/public/coupons/4" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func delete() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("DELETE", "https://api.webconnex.com/v2/public/coupons/4", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.delete(
url="https://api.webconnex.com/v2/public/coupons/4",
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function (callback) {
"use strict";
const httpTransport = require("https");
const responseEncoding = "utf8";
const httpOptions = {
hostname: "api.webconnex.com",
port: "443",
path: "/v2/public/coupons/4",
method: "DELETE",
headers: { apiKey: "<YOUR API KEY>" },
};
httpOptions.headers["User-Agent"] = "node " + process.version;
const request = httpTransport
.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = "";
res
.on("data", (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
} else {
responseStr = responseStr + chunk;
}
})
.on("end", () => {
responseStr =
responseBufs.length > 0
? Buffer.concat(responseBufs).toString(responseEncoding)
: responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on("error", (error) => {
callback(error);
});
request.write("");
request.end();
})((error, statusCode, headers, body) => {
console.log("ERROR:", error);
console.log("STATUS:", statusCode);
console.log("HEADERS:", JSON.stringify(headers));
console.log("BODY:", body);
});
func sendDeleteRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/coupons/4", method: .delete, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"totalResults": 1
}
HTTP Request
DELETE /v2/public/coupons/{id}
Request Params
Parameter | Description |
---|---|
id integer (required) |
Id of the coupon to delete |
Inventory
View for Form
curl "https://api.webconnex.com/v2/public/forms/676/inventory?pretty=true" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func sendRequest() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/forms/676/inventory", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/forms/676/inventory',
method: 'GET',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/forms/676/inventory",
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
func sendViewRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/forms/676/inventory", method: .get, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": [
{
"path": "registrants.registrationOptions",
"name": "Registration Options",
"sold": 8,
"quantity": 12,
"dateCreated": "2017-07-11T22:20:44Z"
},
{
"path": "registrants.registrationOptions",
"name": "Registration Options-registrants.registrationOptions",
"key": "registrants.registrationOptions",
"sold": 3,
"quantity": 12,
"dateCreated": "2017-07-11T22:20:44Z",
"dateUpdated": "2017-07-12T08:06:24Z"
}
],
"totalResults": 2
}
HTTP Request
GET /v2/public/forms/{formId}/inventory
Request Params
Parameter | Description |
---|---|
formId integer (required) |
The id of the parent form |
Response Object
Attribute | Description |
---|---|
path string |
Unique path scoped to a form |
name string |
Friendly public facing name of item |
sold integer |
Quantity of sold inventory |
quantity integer |
Quantity of available inventory |
dateCreated timestamp |
Timestamp the inventory item was created |
dateUpdated timestamp |
Timestamp the inventory item was created |
Webhooks
List
curl "https://api.webconnex.com/v2/public/webhooks?pretty=true" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func sendList() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/webhooks", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/webhooks",
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/webhooks',
method: 'GET',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func sendListRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/webhooks", method: .get, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": [
{
"id": 28,
"accountId": 1,
"forms": [{
"formId": -1
}],
"token": "b4148448406443eda7bc5c44d11c9cd3",
"events": [
"registration",
"subscription"
],
"method": "POST",
"url": "https://webhook-endpoint.your-url.com",
"typeId": 1,
"status": 1,
"meta": {
"name": "Registration Capture"
},
"dateCreated": "2015-11-10T06:09:11Z",
"dateUpdated": "2015-11-23T19:14:16Z"
},
{
"id": 29,
"accountId": 1,
"forms": [{
"formId": 376
},{
"formId": 19234
}],
"signingSecret": "64fca5a66a8945b3958905b320f72adb",
"events": [
"registration",
"coupon"
],
"method": "POST",
"url": "https://webhook-endpoint.your-url.com",
"typeId": 1,
"status": 1,
"meta": {
"name": "Internal CRM integration"
},
"dateCreated": "2015-11-10T16:54:20Z",
"dateUpdated": "2015-11-23T19:14:27Z"
}
],
"totalResults": 2
}
HTTP Request
GET /v2/public/webhooks
Request Params
No filtering implemented on this HTTP resource.
Response Object
Attribute | Description |
---|---|
id integer |
Unique id of the webhook |
accountId integer |
Id of the associated account |
forms array |
Array of objects containing the form id's associated with the webhook. |
signingSecret string |
Unique signing secret for the webhook |
events array |
List of events assigned to the webhook |
method string |
HTTP method used for the webhook delivery request |
url string |
Endpoint URL used for the webhook delivery request |
typeId integer |
Webhook Type id (See appendix for types) |
status string |
Status of the webhook (See appendix for statuses) |
meta object |
Contains additional webhook information |
dateCreated timestamp |
Timestamp of the creation of the webhook |
dateUpdated timestamp |
Timestamp the webhook was last updated |
View
curl "https://api.webconnex.com/v2/public/webhooks/1623423?pretty=true" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func sendList() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/webhooks/1623423", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/webhooks/1623423",
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/webhooks/1623423',
method: 'GET',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func sendListRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/webhooks/1623423", method: .get, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": [
{
"id": 28,
"accountId": 1,
"forms": [{
"formId": 19234
}],
"signingSecret": "b4148448406443eda7bc5c44d11c9cd3",
"events": [
"registration"
],
"method": "POST",
"url": "https://webhook-endpoint.your-url.com",
"typeId": 1,
"status": 1,
"meta": {
"name": "Registration Capture"
},
"dateCreated": "2015-11-10T06:09:11Z",
"dateUpdated": "2015-11-23T19:14:16Z"
}],
"totalResults": 1
}
HTTP Request
GET /v2/public/webhooks/{id}
Request Params
Parameter | Description |
---|---|
id string (required) |
Id of the requested webhook |
Response Object
Attribute | Description |
---|---|
id integer |
Unique id of the webhook |
accountId integer |
Id of the associated account |
forms array |
Array of objects containing the form id's associated with the webhook. |
signingSecret string |
Unique signing secret for the webhook |
events array |
List of events assigned to the webhook |
method string |
HTTP method used for the webhook delivery request |
url string |
Endpoint URL used for the webhook delivery request |
typeId integer |
Webhook Type id (See appendix for types) |
status string |
Status of the webhook (See appendix for statuses) |
meta object |
Contains additional webhook details |
dateCreated timestamp |
Timestamp of the creation of the webhook |
dateUpdated timestamp |
Timestamp the webhook was last updated |
Create
curl -X "POST" "https://api.webconnex.com/v2/public/webhooks" \
-H "apiKey: <YOUR API KEY>" \
-d $'{
"accountId": 1,
"events": [
"registration"
],
"forms": [
{
"formId": -1
}
],
"meta": {
"name": "Divvy API TEST Create"
},
"method": "POST",
"status": 1,
"typeId": 1,
"url": "https://example.com"
}'
package main
import (
"fmt"
"io/ioutil"
"net/http"
"strings"
)
func sendRequest() {
body := strings.NewReader(`{
"accountId": 1,
"events": [
"registration"
],
"forms": [
{
"formId": -1
}
],
"meta": {
"name": "Divvy API TEST Create"
},
"method": "POST",
"status": 1,
"typeId": 1,
"url": "https://example.com"
}`)
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("POST", "https://api.webconnex.com/v2/public/webhooks", body)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
req.Header.Add("Content-Type", "text/plain; charset=utf-8")
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.post(
url="https://api.webconnex.com/v2/public/webhooks",
headers={
"apiKey": "<YOUR API KEY>",
"Content-Type": "text/plain; charset=utf-8",
},
data="{
\"accountId\": 1,
\"events\": [
\"registration\"
],
\"forms\": [
{
\"formId\": -1
}
],
\"meta\": {
\"name\": \"Divvy API TEST Create\"
},
\"method\": \"POST\",
\"status\": 1,
\"typeId\": 1,
\"url\": \"https://example.com\"
}"
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/webhooks',
method: 'POST',
headers: {"apiKey":"<YOUR API KEY>","Content-Type":"text/plain; charset=utf-8"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("{
\"accountId\": 1,
\"events\": [
\"registration\"
],
\"forms\": [
{
\"formId\": -1
}
],
\"meta\": {
\"name\": \"Divvy API TEST Create\"
},
\"method\": \"POST\",
\"status\": 1,
\"typeId\": 1,
\"url\": \"https://example.com\"
}")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func sendRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
"Content-Type":"text/plain; charset=utf-8",
]
// Custom Body Encoding
struct RawDataEncoding: ParameterEncoding {
public static var `default`: RawDataEncoding { return RawDataEncoding() }
public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
var request = try urlRequest.asURLRequest()
request.httpBody = "{
\"accountId\": 1,
\"events\": [
\"registration\"
],
\"forms\": [
{
\"formId\": -1
}
],
\"meta\": {
\"name\": \"Divvy API TEST Create\"
},
\"method\": \"POST\",
\"status\": 1,
\"typeId\": 1,
\"url\": \"https://example.com\"
}".data(using: String.Encoding.utf8, allowLossyConversion: false)
return request
}
}
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/webhooks", method: .post, encoding: RawDataEncoding.default, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 201,
"data": {
"id": 123,
"accountId": 1,
"forms": [
{
"formId": -1
}
],
"signingSecret": "abc123",
"events": [
"registration"
],
"method": "POST",
"url": "https://example.com",
"typeId": 1,
"status": 1,
"meta": {
"name": "Divvy API TEST Create"
},
"dateCreated": "2024-04-16T22:17:11.441460073Z"
},
"totalResults": 1
}
HTTP Request
POST /v2/public/webhooks
Request Object
Attribute | Description |
---|---|
forms array Required |
Array of objects containing the form id's associated with the webhook. (send [{"formid":-1}] to subscribe to all forms) |
events array Required |
List of events assigned to the webhook |
method string |
HTTP method used for the webhook delivery request |
url string |
Endpoint URL used for the webhook delivery request |
typeId integer |
Webhook Type id (See appendix for types) |
status string |
Status of the webhook (See appendix for statuses) |
meta object |
Contains webhook name and app key if required by the endpoint |
Response Object
Attribute | Description |
---|---|
id integer |
Unique id of the webhook |
accountId integer |
Id of the associated account |
forms array Required |
Array of objects containing the form id's associated with the webhook. |
signingSecret string |
Unique signing secret for the webhook |
events array |
List of events assigned to the webhook |
method string |
HTTP method used for the webhook delivery request |
url string |
Endpoint URL used for the webhook delivery request |
typeId integer |
Webhook Type id (See appendix for types) |
status string |
Status of the webhook (See appendix for statuses) |
meta object |
Contains webhook name and app key if required by the endpoint |
dateCreated timestamp |
Timestamp of the creation of the webhook |
dateUpdated timestamp |
Timestamp the webhook was last updated |
Update
API returns JSON structured like this:
{
"responseCode": 200,
"totalResults": 1
}
HTTP Request
PUT /v2/public/webhooks/{id}
Request Object
Attribute | Description |
---|---|
id integer |
Unique id of the webhook |
accountId integer |
Id of the associated account |
forms array Required |
Array of objects containing the form id's associated with the webhook. (send [{"formid":-1}] to subscribe to all forms) |
events array Required |
List of events assigned to the webhook |
method string |
HTTP method used for the webhook delivery request |
url string |
Endpoint URL used for the webhook delivery request |
typeId integer |
Webhook Type id (See appendix for types) |
status string |
Status of the webhook (See appendix for statuses) |
meta object |
Contains webhook name and app key if required by the endpoint |
Response Object
Attribute | Description |
---|---|
id integer |
Unique id of the webhook |
accountId integer |
Id of the associated account |
forms array Required |
Array of objects containing the form id's associated with the webhook. |
signingSecret string |
Unique signing secret for the webhook |
events array |
List of events assigned to the webhook |
method string |
HTTP method used for the webhook delivery request |
url string |
Endpoint URL used for the webhook delivery request |
typeId integer |
Webhook Type id (See appendix for types) |
status string |
Status of the webhook (See appendix for statuses) |
meta object |
Contains webhook name and app key if required by the endpoint |
dateCreated timestamp |
Timestamp of the creation of the webhook |
dateUpdated timestamp |
Timestamp the webhook was last updated |
Delete
curl -X "DELETE" "https://api.webconnex.com/v2/public/webhooks/4" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func delete() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("DELETE", "https://api.webconnex.com/v2/public/webhooks/4", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.delete(
url="https://api.webconnex.com/v2/public/webhooks/4",
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/webhooks/4',
method: 'DELETE',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func sendDeleteRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/webhooks/4", method: .delete, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"totalResults": 1
}
HTTP Request
DELETE /v2/public/webhooks/{id}
Request Object
Attribute | Description |
---|---|
id integer |
Id of the webhook |
List Logs
curl "https://api.webconnex.com/v2/public/webhooks/1623423/logs?pretty=true" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func list() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/webhooks/1623423/logs", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/webhooks/1623423/logs",
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/webhooks/1623423/logs',
method: 'GET',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func sendListRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/webhooks/1623423/logs", method: .get, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": [
{
"id": 12128,
"displayId": "7a2eb39d6dd04681ba5112da6446d0c7",
"formId": 1,
"webhookId": 46,
"eventType": "publish",
"eventId": 1234,
"status": "error",
"attempt": 1,
"dateSent": "2016-09-15T23:30:04Z"
},
{
"id": 12127,
"displayId": "a9b9e3409e724ae39e939ef42b073fa4",
"formId": 1,
"webhookId": 46,
"eventType": "subscription",
"eventId": 1234,
"status": "error",
"attempt": 1,
"dateSent": "2016-09-15T23:30:02Z"
},
{
"id": 12125,
"displayId": "4dceacfe166c4ea2abed0402f23a1e7c",
"formId": 1,
"webhookId": 46,
"eventType": "registration",
"eventId": 1234,
"status": "error",
"attempt": 1,
"dateSent": "2016-09-15T23:29:59Z"
},
{
"id": 12124,
"displayId": "3c4f25cee893486182c211deefa33cbd",
"formId": 1,
"webhookId": 46,
"eventType": "ping",
"eventId": 1234,
"status": "error",
"attempt": 1,
"dateSent": "2016-09-15T23:29:56Z"
},
{
"id": 9849,
"displayId": "5fe153f9533d4731893ef571676e5f90",
"formId": 14280,
"webhookId": 46,
"eventType": "publish",
"eventId": 8736,
"status": "success",
"attempt": 1,
"dateSent": "2016-08-31T17:03:47Z"
}
],
"totalResults": 333,
"startingAfter": 4,
"hasMore": true
}
Get all logs for a given webhook
HTTP Request
GET /v2/public/webhooks/{id}/logs
Request Object
Attribute | Description |
---|---|
id integer |
Id of the parent webhook |
Request Params
Parameter | Description |
---|---|
sort string (optional) |
|
limit string (optional) |
Limits the number of results returned |
greaterThanId integer (optional) |
|
lessThanId integer (optional) |
|
status string (optional) |
|
dateSentBefore timestamp (optional) |
|
dateSentAfter timestamp (optional) |
View Webhook Log by Id
curl "https://api.webconnex.com/v2/public/webhooks/1623423/logs?pretty=true" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func sendList() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("GET", "https://api.webconnex.com/v2/public/webhooks/46/logs/9849", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.get(
url="https://api.webconnex.com/v2/public/webhooks/46/logs/9849",
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/webhooks/46/logs/9849',
method: 'GET',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func sendListRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/webhooks/46/logs/9849/", method: .get, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": {
"id": 9849,
"displayId": "5fe153f9533d4731893ef571676e5f90",
"webhookId": 46,
"status": "success",
"attempt": 1,
"request": {
"method": "POST",
"url": "https://hooks.localhost.com/hooks/catch/1578515/4nr6xi/",
"header": {
"Content-Type": ["application/json"],
"User-Agent": ["Webconnex-Divvy"],
"X-Webconnex-Delivery": ["d44bf23f171f44958434b09eed2eaab4"],
"X-Webconnex-Event": ["publish"],
"X-Webconnex-Signature": ["42cf9e2bdf38df608e09f805a8a1254e372ad3139bd4c7a76982fa0286613062"]
},
"body": {
"eventType": "publish",
"accountId": 14,
"formId": 14280,
"data": {
"accRef": "MMBRSHPTST",
"currency": "USD",
"datePublished": "2016-08-31T17:03:08Z",
"eventStart": "2016-05-31T07:00:00Z",
"id": 14280,
"name": "Membership Example",
"product": "regfox.com",
"publishedPath": "awesomeco.regfox.com/membership-test-ek",
"status": "open",
"timeZone": "America/Regina"
},
"meta": {
"name": "Webhook divvy example"
}
}
},
"response": {
"code": 200,
"header": {
"Access-Control-Allow-Origin": ["*"],
"Connection": ["keep-alive"],
"Content-Length": ["152"],
"Content-Type": ["application/json"],
"Date": ["Wed, 31 Aug 2016 17:03:47 GMT"],
"Response-Id": ["eW7TQDb9trUnoRgA"],
"Server": ["nginx"],
},
"body": "{\"status\": \"success\", \"attempt\": \"57c70df3-d5e5-436f-aa27-e9c958aaf250\", \"id\": \"db89d766-5be4-4ba2-b312-5d7b5a23de7e\", \"request_id\": \"eW7TQDb9trUnoRgA\"}"
},
"dateSent": "2016-08-31T17:03:47Z"
},
"totalResults": 1
}
View a specific webhook log
HTTP Request
GET /v2/public/webhooks/{webhookid}/logs/{webhookLogid}
Request Object
Attribute | Description |
---|---|
webhookid integer |
Id of the parent webhook |
webhookLogid integer |
Id of the webhook log |
Resend Webhook
curl -X "POST" "https://api.webconnex.com/v2/public/webhooks/39/resend/3899" \
-H "apiKey: <YOUR API KEY>"
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func sendRequest() {
// Create client
client := &http.Client{}
// Create request
req, err := http.NewRequest("POST", "https://api.webconnex.com/v2/public/webhooks/39/resend/3899", nil)
// Headers
req.Header.Add("apiKey", "<YOUR API KEY>")
// Fetch Request
resp, err := client.Do(req)
if err != nil {
fmt.Println("Failure : ", err)
}
// Read Response Body
respBody, _ := io.ReadAll(resp.Body)
// Display Results
fmt.Println("response Status : ", resp.Status)
fmt.Println("response Headers : ", resp.Header)
fmt.Println("response Body : ", string(respBody))
}
# Install the Python Requests library:
# `pip install requests`
import requests
def send_request():
try:
response = requests.post(
url="https://api.webconnex.com/v2/public/webhooks/39/resend/3899",
headers={
"apiKey": "<YOUR API KEY>",
},
)
print('Response HTTP Status Code: {status_code}'.format(
status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(
content=response.content))
except requests.exceptions.RequestException:
print('HTTP Request failed')
(function(callback) {
'use strict';
const httpTransport = require('https');
const responseEncoding = 'utf8';
const httpOptions = {
hostname: 'api.webconnex.com',
port: '443',
path: '/v2/public/webhooks/39/resend/3899',
method: 'POST',
headers: {"apiKey":"<YOUR API KEY>"}
};
httpOptions.headers['User-Agent'] = 'node ' + process.version;
const request = httpTransport.request(httpOptions, (res) => {
let responseBufs = [];
let responseStr = '';
res.on('data', (chunk) => {
if (Buffer.isBuffer(chunk)) {
responseBufs.push(chunk);
}
else {
responseStr = responseStr + chunk;
}
}).on('end', () => {
responseStr = responseBufs.length > 0 ?
Buffer.concat(responseBufs).toString(responseEncoding) : responseStr;
callback(null, res.statusCode, res.headers, responseStr);
});
})
.setTimeout(0)
.on('error', (error) => {
callback(error);
});
request.write("")
request.end();
})((error, statusCode, headers, body) => {
console.log('ERROR:', error);
console.log('STATUS:', statusCode);
console.log('HEADERS:', JSON.stringify(headers));
console.log('BODY:', body);
});
func sendRequest() {
// Add Headers
let headers = [
"apiKey":"<YOUR API KEY>",
]
// Fetch Request
Alamofire.request("https://api.webconnex.com/v2/public/webhooks/39/resend/3899", method: .post, headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
if (response.result.error == nil) {
debugPrint("HTTP Response Body: \(response.data)")
}
else {
debugPrint("HTTP Request failed: \(response.result.error)")
}
}
}
API returns JSON structured like this:
{
"responseCode": 200,
"data": {
"accountId": 1,
"formId": 403,
"logEntryId": null,
"webhookId": 112,
"signingSecret": "6aeeff5d8ad94c71b3b716fcfe0aa9ad",
"eventType": "subscription",
"eventId": 15128,
"url": "https://myawesome.api/v2",
"typeId": 6,
"method": "POST",
"hash": "8de2ee5d255149c6af2ed5ffbf24dd7f",
"body": {
"eventType": "subscription",
"accountId": 1,
"formId": 403,
"eventId": 15128,
"data": {
"billing": {
"address": {
"city": "Sacramento",
"country": "US",
"postalCode": "95814",
"state": "CA",
"street1": "455 Capital Mall"
},
"card": {
"cardNumber": "VISA-1111",
"expMonth": 9,
"expYear": 2022
},
"check": {
"accountType": "Bank Name",
"accountNumber": "4111",
"routingNumber": "123456789"
},
"email": "help@webconnex.com",
"name": {
"first": "John",
"last": "Doe"
},
"paymentMethod": "card"
},
"currency": "USD",
"customerId": 1179,
"deductibleTotal": 20.6,
"id": "01BPYMJZHFJF34CZJJR",
"lookupId": 12949,
"orderNumber": "SDD2-001000T",
"orderStatus": "completed",
"subscription": {
"amount": 20.6,
"category": "General",
"dateCreated": "2017-03-16T21:05:08Z",
"dateLast": "2017-07-06T00:00:39Z",
"dateNext": "2017-07-13T10:00:00Z",
"dateUpdated": "2017-07-06T00:00:38Z",
"email": "test@webconnex.com",
"id": 472,
"paymentsLeft": -1,
"paymentsLeftString": "unlimited",
"schedule": "0 0 0 * * 4",
"scheduleString": "Thursdays",
"status": "active"
},
"total": 20.6,
"transactionReference": "TESTERCHARGE"
},
"meta": {
"appKey": "webconnex",
"appToken": "webconnex"
}
},
"Attempt": 2
},
"totalResults": 1
}
Request that a particular webhook attempt be resent.
HTTP Request
POST /v2/public/webhooks/{webhookid}/resend/{logId}
Request Params
Parameter | Description |
---|---|
webhookid string (required) |
Id of the webhook |
logId string (required) |
Id of the webhook log entry to be resent |
Webhook
Our webhook system allows you to receive data when certain events happen on your account.
We currently support the following events:
- New Registrations/Orders Notification
- Subscription/Recurring Notification
- Reoccurring SMS Donation Notification (Beta)
- Form Published Notification
- Inventory Supply Notification
- Coupons Notification
- Edit/Cancel Registrant Notification
- Edit/Cancel Ticket Notification
- Cancel Order Notification
Control Panel Interface
Aside from using the public API, you can create webhooks in the control-panel interface under the Extra -> Integrations Tab.
The default screen lists all of your current integrations.
Clicking on an integration will navigate to the details page where you can configure various options.
The control panel will show you a log of all the requests made for a given webhook and allow you to view your servers response to the sent webhook to help you troubleshoot any potential problems.
Clicking on the details of a request will reveal more information that might be useful in troubleshooting problems. You can also resend your webhook from this pane.
Headers
Supplied Header:
{
"Content-Type": ["application/json"],
"User-Agent": ["Webconnex-Divvy"],
"X-Webconnex-Delivery": ["b473fe314def43ccacc10ec75aae1451"],
"X-Webconnex-Event": ["test"],
"X-Webconnex-Signature": [
"bcfb8142ac545c5b7e5d6f0694234e6a01b2cd57d4732d883548a97d020221df"
]
}
Parameter | Description |
---|---|
Content-Type | application/json |
User-Agent | Webconnex-Divvy |
X-Webconnex-Delivery | Hash for the delivery |
X-Webconnex-Event | Event types being sent ie.. registration, edit_registrant, cancel_order, etc... |
X-Webconnex-Signature | HMAC for the webhook. Note: Remains unchanged on resend events |
Webhook Events
These are the system events that are available as webhook triggers.
Registration Notification
Example Payload:
{
"eventType": "registration",
"accountId": 1,
"formId": 432,
"customerId": 8210,
"eventId": 112,
"data": {
"billing": {
"address": {
"city": "Sacramento",
"country": "US",
"postalCode": "95814",
"state": "CA",
"street1": "123 Any St."
},
"card": {
"cardNumber": "VISA-1111",
"expMonth": 4,
"expYear": 2018
},
"check": {
"accountType": "Bank Name",
"accountNumber": "VISA-4111",
"routingNumber": "123456789"
},
"email": "no-reply@webconnex.com",
"emailOptIn": true,
"name": {
"first": "Robert",
"last": "Jones"
},
"paymentMethod": "card",
"phone": "1530306026"
},
"id": "01BPYMJZHFJF34CZJJR",
"lookupId": 112,
"customerId": 8210,
"currency": "USD",
"deductibleTotal": 0,
"orderNumber": "NWBGBY-AWS123",
"orderStatus": "completed",
"registrants": [
{
"amount": 100,
"data": [
{
"first": {
"label": "First Name",
"type": "nameField",
"value": "Robert"
},
"key": "name",
"label": "Name",
"last": {
"label": "Last Name",
"type": "nameField",
"value": "Jones"
},
"type": "name"
},
{
"key": "registrationOptions",
"label": "Registration Options",
"options": [
{
"amount": "100",
"discount": "0",
"key": "option1",
"label": "Option 1",
"price": "100",
"type": "regOption",
"value": true
}
],
"type": "regOptions",
"value": "option1"
},
{
"city": {
"label": "City",
"type": "textField",
"value": "Sacramento"
},
"country": {
"label": "Country",
"type": "textField",
"value": "US"
},
"key": "address",
"label": "Address",
"postalCode": {
"label": "ZIP/Postal Code",
"type": "textField",
"value": "95814"
},
"state": {
"label": "State",
"type": "textField",
"value": "CA"
},
"street1": {
"label": "Street Address",
"type": "textField",
"value": "1233 Any St."
},
"type": "address"
},
{
"key": "email",
"label": "Email",
"type": "email",
"value": "help@webconnex.com"
}
],
"id": "01BPYMJZHFJF34CZJJR"
}
],
"registrationTimestamp": "2015-12-22T17:26:29Z",
"total": 100,
"transactionId": 13313,
"transactionReference": "TESTERCHARGE"
},
"meta": {
"appKey": "Optional App Key",
"name": "Optional Webconnex Name"
}
}
The registration event is fired whenever a successful registration has occurred on a form that you have set up a webhook for. The payload will resemble the fields in the form tied to the webhook event.
Payload
Parameter | Default | Description |
---|---|---|
eventType | string | registration |
accountId | integer | Id of the account |
formId | integer | Id of the form |
customerId | integer | Id of the customer |
eventId | integer | Id of the registration webhook event. |
data | object | Object contains the complete payload for the registration |
meta | object | Object contains information about the webhook |
Data Object
Parameter | Default | Description |
---|---|---|
billing | object | Object contains the billing information |
id | string | Unique hash for the registration |
lookupId | Integer | Internal id of the registration |
customerId | Integer | Id of the purchasing customer |
currency | string | The string representation of the order's currency |
deductibleTotal | float | The total deductible amount of the order |
orderNumber | string | Unique order number built from accounting reference in the form |
orderStatus | string | Status of the order |
registrants | object | Object contains all the fields for the registrant(s) |
tickets | object | Object contains all the fields for the ticket(s) |
total | float | The total value of the registration |
transactionReference | string | Transaction reference of the registration |
transactionId | Integer | Transaction Id of the registration |
registrationTimestamp | timestamp | UTC date and time |
Meta Object
Parameter | Default | Description |
---|---|---|
name | string | The name of the webhook |
appKey | string | Self assigned application key (optional) |
Form Publish Event
Example Payload:
{
"eventType": "publish",
"accountId": 14,
"formId": 14280,
"eventId": 234,
"data": {
"accRef": "MMBRSHPTST",
"currency": "USD",
"datePublished": "2016-08-31T17:03:08Z",
"eventStart": "2016-05-31T07:00:00Z",
"eventEnd": "2016-07-31T07:00:00Z",
"id": 14280,
"name": "Example Form",
"product": "regfox.com",
"publishedPath": "help.regfox.com/membership-test-ek",
"registrationEnd": "2016-08-19T07:00:00Z",
"registrationStart": "2016-08-19T07:00:00Z",
"status": "open",
"timeZone": "America/Regina"
},
"meta": {
"appKey": "Optional App Key",
"name": "Your webhook name"
}
}
The publish event is fired whenever a successful form has been published on a form that you have set up a webhook for.
Payload
Parameter | Default | Description |
---|---|---|
eventType | string | The event type - "publish" |
accountId | integer | Id of the account |
formId | integer | Id of the form |
eventId | integer | Id of the publish webhook event |
data | object | Object contains the complete payload for the publish event |
meta | object | Object contains information about the webhook |
Data Object
Parameter | Default | Description |
---|---|---|
accRef | string | Form accounting reference |
currency | string | Currency of the campaign |
datePublished | timestamp | Date form was last published |
eventEnd | timestamp | Event end date (optional) |
eventStart | timestamp | Event start date (optional) |
id | Integer | Id of the form |
name | string | Name of the form |
product | string | Product of the form |
publishedPath | string | Name of the form |
registrationEnd | timestamp | Ending date for registration (optional) |
registrationStart | timestamp | Opening date for registration (optional) |
status | string | Status of the form |
timeZone | string | Timezone of the form |
Meta Object
Parameter | Default | Description |
---|---|---|
name | string | The name of the webhook |
appKey | string | Self assigned application key (optional) |
Subscription / Reoccurring Notification
Example Payload:
{
"eventType": "subscription",
"accountId": 14,
"formId": 1293,
"customerId": 2,
"eventId": 13533,
"data": {
"billing": {
"address": {
"city": "Sacramento",
"country": "US",
"postalCode": "95814",
"state": "CA",
"street1": "455 Capital Mall"
},
"card": {
"cardNumber": "VISA-1111",
"expMonth": 9,
"expYear": 2022
},
"check": {
"accountType": "Bank Name",
"accountNumber": "4111",
"routingNumber": "123456789"
},
"email": "help@webconnex.com",
"name": {
"first": "John",
"last": "Doe"
},
"paymentMethod": "card"
},
"customerId": 2,
"id": "01BPYMJZHFJF34CZJJR",
"orderNumber": "CNFRMTNPGF-AWE-2",
"orderStatus": "completed",
"subscription": {
"amount": 100,
"category": "Bacon",
"dateCreated": "2016-08-12T18:36:31Z",
"dateLast": "2016-09-12T00:00:07Z",
"dateNext": "2016-10-12T10:00:00Z",
"dateUpdated": "2016-09-12T00:00:07Z",
"email": "help@webconnex.com",
"id": 346,
"paymentsLeft": -1,
"paymentsLeftString": "unlimited",
"schedule": "0 0 0 12 * *",
"scheduleString": "12th of every month",
"status": "active"
},
"currency": "USD",
"deductibleTotal": 100,
"total": 100,
"transactionId": 2423,
"transactionReference": "TESTERCHARGE"
},
"meta": {
"appKey": "Optional App Key",
"name": "Subscription Webhooks"
}
}
The subscription / reoccurring event is fired whenever a successful subscription or deposit has been completed on a form that you have set up a webhook for.
Payload
Parameter | Default | Description |
---|---|---|
eventType | string | The event type - "subscription" |
accountId | integer | Id of the account |
formId | integer | Id of the form |
customerId | integer | Id of the purchasing customer |
eventId | integer | Id of the subscription webhook event |
data | object | Object contains the complete payload for the subscription event |
meta | object | Object contains information about the webhook |
Data Object
Parameter | Default | Description |
---|---|---|
id | string | Internal Id of the subscription |
lookupId | string | Id of the subscription |
customerId | integer | Id of the customer |
billing | object | Object contains the billing information |
orderNumber | string | Unique order number built from the form accounting reference |
orderStatus | string | Status of the order |
currency | string | The currency of campaign |
deductibleTotal | float | The total deductible amount of the order |
subscription | object | Object contains the subscription/reoccurring information |
transactionReference | string | The transaction reference of processed transaction |
transactionId | integer | Transaction Id of the subscription |
total | float | The total value processed |
Subscription Object
Parameter | Default | Description |
---|---|---|
amount | float | The amount value of the subscription/reoccurring payment |
category | string | Designated fund |
dateCreated | timestamp | Date of creation |
dateUpdated | timestamp | Date last updated (optional) |
dateLast | timestamp | Date of last processed |
dateNext | timestamp | Date of next process attempt |
string | Email address of the subscription/reoccurring payment | |
id | Integer | Internal id of the subscription/reoccurring payment |
schedule | string | Cron formatted string detailing the schedule |
scheduleString | string | Human readable schedule |
status | string | The current status of the subscription/reoccurring payment |
Meta Object
Parameter | Default | Description |
---|---|---|
name | string | The name of the webhook |
appKey | string | Self assigned application key (optional) |
Reoccurring SMS Donation Notification (Beta)
Example Payload:
{
"eventType": "sms",
"accountId": 14,
"formId": 40556,
"customerId": 15,
"eventId": 15722,
"data": {
"id": "01BV2JNE10AGKDQSQF1",
"lookupId": 13457,
"customerId": 15,
"transactionReference": "TESTERCHARGE",
"orderStatus": "completed",
"orderNumber": "TXTMTSD-AWE000K",
"total": 25,
"currency": "USD",
"deductibleTotal": 25,
"email": "gracious+donnor@webconnex.com",
"category": "New Campus",
"donorNumber": "+19160000000",
"text2GiveNumber": "+19164356496",
"billing": {
"address": {
"city": "Sacramento",
"country": "US",
"postalCode": "95814",
"state": "CA",
"street1": "455 Capitol Mall - Sixth Floor"
},
"card": {
"cardNumber": "VISA-1111",
"expMonth": 6,
"expYear": 2019
},
"check": {
"accountType": "checking",
"accountNumber": "XXXXX6789",
"routingNumber": "021000021",
"bankName": "Acme"
},
"email": "gracious+donnor@webconnex.com",
"phone": "19160000000",
"fullName": "John Doe",
"name": {
"first": "John",
"last": "Doe"
},
"paymentMethod": "card"
}
},
"meta": {
"name": "SMS"
}
}
The sms event is fired whenever followup sms donation is created. Please contact support if you are interested in joining the "Reoccurring SMS Donation Notification" Beta test program.
Note: This only includes followup donations, the initial text 2 give donation is sent though the New Registrations/Orders
webhook.
Payload
Parameter | Default | Description |
---|---|---|
eventType | string | The event type - "sms" |
accountId | integer | Id of the account |
formId | integer | Id of the form |
customerId | integer | Id of the purchasing customer |
eventId | integer | Id of the subscription webhook event |
data | object | Object contains the complete payload for the subscription event |
meta | object | Object contains information about the webhook |
Data Object
Parameter | Default | Description |
---|---|---|
id | string | Id of the Order |
lookupId | string | Internal Id of the Order |
customerId | integer | Id of the customer |
transactionId | integer | Id of the transaction |
transactionReference | string | The transaction reference of processed transaction |
transactionStatus | string | The result of the transaction (See appendix for details) |
orderStatus | string | Status of the order (See appendix for details) |
orderNumber | string | Unique order number built from the form accounting reference |
total | float | The total value processed |
currency | string | The currency of campaign |
deductibleTotal | float | The total deductible amount of the order |
string | Email address of tied to the Order | |
category | string | Designated fund |
donorNumber | string | The personal number of the donor used to text in |
text2GiveNumber | string | The donation level tied to the campaign |
billing | object | Object contains the billing information |
Inventory Notification
Example Payload:
{
"eventType": "inventory_100",
"accountId": 1,
"formId": 25673,
"eventId": 33764,
"data": {
"dateCreated": "2016-11-04T16:28:00Z",
"dateUpdated": "2016-11-04T16:55:39Z",
"formLookupId": 25673,
"formName": "Example 5k Campaign",
"id": 33764,
"inventory": {
"quantity": 4000,
"sold": 4000
},
"itemName": "Fun 5K",
"itemPath": "registrants.registrationOptions.option1",
"lookupId": 33764
},
"meta": {
"appKey": "Optional App Key",
"name": "Inventory Webhook Test"
}
}
The inventory event is fired whenever an inventory item reaches 80%, 90% and 100% sold capacity on a form that you have set up a webhook for.
Payload
Parameter | Default | Description |
---|---|---|
eventType | string | The event type - "inventory_80", "inventory_90", "inventory_100" |
formId | integer | Id of the form |
accountId | integer | Id of the account |
eventId | integer | Id of the inventory webhook event |
data | object | The object contains the complete payload for the inventory event |
meta | object | Object contains information about the webhook |
Data Object
Parameter | Default | Description |
---|---|---|
dateCreated | timestamp | Date the inventory item was created |
dateUpdated | timestamp | Date the inventory item was updated (optional) |
formLookupId | int | Id of the form used for requesting when calling from the public api |
formName | string | The name of the form campaign |
id | string | Id of the inventory item |
inventory | object | An object containing the inventory supply data |
itemName | string | The name of the inventory item |
itemPath | string | The path of the inventory item |
lookupId | Int | Id of the inventory item used for requesting when calling from the public api |
Inventory Object
Parameter | Default | Description |
---|---|---|
quantity | int | The inventory limit |
sold | int | The amount inventory sold |
Meta Object
Parameter | Default | Description |
---|---|---|
name | string | The name of the webhook |
appKey | string | Self assigned application key (optional) |
Coupons Notification
Example Payload:
{
"eventType": "coupon",
"accountId": 1,
"formId": 112,
"eventId": 5675,
"data": {
"available": -1,
"codes": [
{
"code": "half_off",
"couponId": 343,
"id": 3345,
"redeemed": 3
}
],
"couponId": 343,
"currency": "USD",
"dateCreated": "2016-12-29T06:14:28Z",
"dateUpdated": "2017-03-03T20:38:48Z",
"discounts": [
{
"paths": ["registrants.registrationOptions.option1"],
"perTicket": false,
"value": "50",
"valueType": "percent"
}
],
"formId": 29815,
"name": "Social Media Campaign",
"redeemed": 3,
"voucher": false
},
"meta": {
"appKey": "Optional App Key",
"name": "Push Notifications"
}
}
The coupon event is fired whenever coupon is created, updated or redeemed. Only global and forms that you have enabled will be delivered by the webhook.
Payload
Parameter | Default | Description |
---|---|---|
eventType | string | The event type - "coupon" |
accountId | integer | Id of the account |
formId | integer | Id of the form |
eventId | integer | Id of the coupon webhook event |
data | object | The object contains the complete payload for the coupon event |
meta | object | Object contains information about the webhook |
Data Object
Parameter | Default | Description |
---|---|---|
couponId | int | Id of the coupon |
available | int | Number of available redemptions ([-1] means unlimited) |
redeemed | int | Number of redemptions |
codes | object | The object container of all the coupon code objects |
currency | string | The currency of coupon |
codes | object | The object container of all the coupon code objects |
name | string | The name of the coupon |
formId | string | Id of the associated form (optional) [null] if coupon is global) |
voucher | bool | Specifies if coupon is a voucher or not |
dateCreated | timestamp | Date the inventory item was created |
dateUpdated | timestamp | Date the inventory item was updated (optional) |
Codes Object
Parameter | Default | Description |
---|---|---|
id | int | Id of the code |
couponId | int | Id of the parent coupon |
code | string | Code used for coupon redemption |
redeemed | int | Number of redemptions |
Discounts Object
Parameter | Default | Description |
---|---|---|
paths | [] string | An array of paths the coupon can be applied to |
perTicket | bool | Specifies weather discount should apply to each ticket (ticketspice.com only) |
valueType | string | Specifies the discount type - Percent or Fixed |
value | string | Value amount to apply |
Edit/Cancel Registrant Notification
Example Payload:
{
"eventType": "registrant_edit",
"accountId": 14,
"formId": 43810,
"customerId": 12334,
"eventId": 25957,
"data": {
"amount": 26.5,
"currency": "USD",
"customerId": 12334,
"data": [
{
"key": "registrationOptions",
"label": "Registration Options",
"options": [
{
"amount": "25",
"discount": "0",
"key": "option1",
"label": "Individual",
"price": "25",
"type": "regOption",
"value": true
}
],
"type": "regOptions",
"value": "option1"
},
{
"first": {
"label": "First Name",
"type": "nameField",
"value": "John"
},
"key": "name",
"label": "Name",
"last": {
"label": "Last Name",
"type": "nameField",
"value": "Doe"
},
"type": "name"
},
{
"key": "email",
"label": "Email",
"optIn": false,
"type": "email",
"value": "edited.reg.email@webconnex.com"
},
{
"city": {
"label": "City",
"type": "textField",
"value": "Big City"
},
"country": {
"label": "Country",
"type": "textField",
"value": "US"
},
"key": "address",
"label": "Address",
"postalCode": {
"label": "ZIP/Postal Code",
"type": "textField",
"value": "62882"
},
"state": {
"label": "State",
"type": "textField",
"value": "OH"
},
"street1": {
"label": "Street Address",
"type": "textField",
"value": "42 Old Extension"
},
"type": "address"
},
{
"amount": "1.5",
"fees": [
{
"amount": "1.5",
"fee": {
"type": "percent",
"value": "6"
},
"key": "lineItemFee",
"type": "lineItemFee"
}
],
"key": "lineItem",
"label": "Convenience Fee",
"type": "lineItem"
},
{
"key": "couponCode",
"label": "Coupon Code",
"type": "couponCode"
}
],
"formId": 43810,
"formName": "Group Size Is aweosme",
"id": "01EN64CZKMDRMJZSWTY",
"lookupId": 25957,
"registrantTimestamp": "2020-10-21T17:48:10Z",
"source": "standard",
"status": "completed",
"orderId": "234SDFSADF1F3TT1Y2JW",
"orderNumber": "CNFRMTNPGF-AWE-2"
},
"meta": {
"appKey": "Optional App Key",
"name": "Push Notifications"
}
}
The edit/cancel registrant event is fired whenever a successful edit or cancellation has occurred on a form that you have set up a webhook for. The payload will resemble the fields in the form tied to the webhook event.
Payload
Parameter | Default | Description |
---|---|---|
eventType | string | edit_registrant/cancel_registrant |
accountId | integer | Id of the account |
formId | integer | Id of the form |
customerId | integer | Id of the customer |
eventId | integer | Id of the registrant webhook event. |
data | object | Object contains the complete payload for the registrant |
meta | object | Object contains information about the webhook |
Data Object
Parameter | Default | Description |
---|---|---|
id | string | Unique hash for the registrant |
lookupId | Integer | Internal id of the registrant |
amount | float | The total value of the registrant |
customerId | Integer | Id of the purchasing customer (Optional) |
currency | string | The string representation of the order's currency |
orderNumber | string | Unique order number built from accounting reference in the form |
data | object | Object containing colected data feilds on ticket |
orderId | string | Unique order id |
status | string | Status of the order |
source | string | Source of the edit |
registrantTimestamp | timestamp | UTC date and time |
Meta Object
Parameter | Default | Description |
---|---|---|
name | string | The name of the webhook |
appKey | string | Self assigned application key (optional) |
Edit/Cancel Ticket Notification
Example Payload:
{
"eventType": "ticket_edit",
"accountId": 14,
"formId": 44519,
"eventId": 21307,
"data": {
"amount": 50,
"currency": "USD",
"data": [
{
"amount": "5",
"fees": [
{
"amount": "5",
"fee": {
"type": "fixed",
"value": "5"
},
"key": "lineItemFee",
"type": "lineItemFee"
}
],
"key": "fee",
"label": "Fee",
"type": "lineItem"
}
],
"fee": 5,
"formId": 44519,
"formName": "Orchid Farm",
"id": "01F3TT1Y2FAZ1H4A1JW",
"lookupId": 21307,
"source": "standard",
"status": "completed",
"label": "Adult VIP",
"selectedDate": "2021-04-30T00:00:00Z",
"eventKey": "ticketLevelTwo",
"eventLabel": "Level Two",
"ticketTimestamp": "2021-04-21T18:11:12Z",
"timeslot": "09:00:00",
"total": 55,
"orderId": "234SDFSADF1F3TT1Y2JW",
"orderNumber": "CNFRMTNPGF-AWE-2"
},
"meta": {
"appKey": "Optional App Key",
"name": "Push Notifications"
}
}
The edit/cancel ticket event is fired whenever a successful edit or cancellation has occurred on a form that you have set up a webhook for. The payload will resemble the fields in the form tied to the webhook event.
Payload
Parameter | Default | Description |
---|---|---|
eventType | string | edit_ticket/cancel_ticket |
accountId | integer | Id of the account |
formId | integer | Id of the form |
customerId | integer | Id of the customer |
eventId | integer | Id of the ticket webhook event. |
data | object | Object contains the complete payload for the ticket |
meta | object | Object contains information about the webhook |
Data Object
Parameter | Default | Description |
---|---|---|
id | string | Unique hash for the ticket |
lookupId | Integer | Internal id of the ticket |
amount | float | The amount value of the ticket |
fee | float | The fee value of the ticket |
total | float | The total value of the ticket |
customerId | Integer | Id of the purchasing customer (Optional) |
currency | string | The string representation of the order's currency |
orderNumber | string | Unique order number built from accounting reference in the form |
orderId | string | Unique order id |
status | string | Status of the order |
source | string | Source of the edit |
data | object | Object containing colected data feilds on ticket |
selectedDate | timestamp | UTC date and time of selected day (optional) |
label | string | label of selected ticket level |
eventKey | string | event key of selected event (optional) |
eventLabel | string | event label of selected event (optional) |
timeslot | string | Timeslot for selected ticket (optional) |
ticketTimestamp | timestamp | UTC date and time |
Meta Object
Parameter | Default | Description |
---|---|---|
name | string | The name of the webhook |
appKey | string | Self assigned application key (optional) |
Appendix
Below is additional information and resources
Maintenance Window
Webconnex regularly performs system maintenance Tuesday's between 9:00 am UTC (2am Pacific Daylight Time, 1am Pacific Standard Time) and 10:00 am UTC (3am Pacific Daylight Time, 2am Pacific Standard Time). During this maintenance window various endpoints may be unavailable as well as Webhook Events may be queued and not delivered till after the maintenance window completes. We recommend scheduling your applications around this time window.
URI Parameters
Date Formats
The following datetime formats can be used when querying with a timestamp
URI parameter.
- "2006-01-02 15:04"
- "01-02-2006"
- "2006-01-02"
- "2006-01-02T15:04:05Z"
Orders Details
Available Statuses |
---|
pending |
abandoned |
completed |
canceled |
pending offline payment |
pending final payment |
waitlisted |
Click HERE to see a help article explaining these statuses.
Registrants Details
Available Statuses |
---|
pending |
abandoned |
completed |
transferred |
pending transfer |
canceled |
pending offline payment |
pending final payment |
waitlisted |
Click HERE to see a help article explaining these statuses.
Source Types | Description |
---|---|
unknown | A source from an unknown origin |
standard | A source from a page |
text 2 give | A source from text 2 give |
boxoffice | A source from boxoffice app |
control panel | A source from a client's control panel |
account manager | A source from a user's account manager |
Tickets Details
Available Statuses |
---|
pending |
abandoned |
completed |
canceled |
pending offline payment |
pending final payment |
Click HERE to see a help article explaining these statuses.
Source Types | Description |
---|---|
unknown | A source from an unknown origin |
standard | A source from a page |
text 2 give | A source from text 2 give |
boxoffice | A source from boxoffice app |
control panel | A source from a client's control panel |
account manager | A source from a user's account manager |
Transactions Details
Statuses
Available Statuses |
---|
processing |
pending offline |
declined |
canceled |
completed |
voided |
canceled |
gateway error |
error |
Click HERE to see a help article explaining these statuses.
Source Types | Description |
---|---|
unknown | A source from an unknown origin |
standard | A source from a page |
text 2 give | A source from text 2 give |
boxoffice | A source from boxoffice app |
control panel | A source from a client's control panel |
account manager | A source from a user's account manager |
subscription | A source from an existing subscription |
membership | A source from an existing memebership |
referral | A source from a referral |
IPN | A source from a gateway instant payment notification |
MLP | A source from magic link payments |
API | A source from a webconnex API (i.e public, enterprise) |
Types
Types | Description |
---|---|
charge | |
refund | |
voucher | |
cash | |
preauth | A zero dollar transaction used for validating a future payment method |
chargeback | Transaction used to report when a credit card holder contacts his bank or credit card company to dispute a charge on his account |
Subscriptions / Reoccurring Payments Details
Available Statuses | Description |
---|---|
active | Is active and will continue to process future payments |
inactive | Is inactive and will not process future payments |
canceled | Is canceled and will no longer process future payments |
completed | Is completed and will no longer process future payments |
Memberships Details
Available Statuses |
---|
purchasing |
active |
inactive |
expired |
purchasing |
abandoned |
Forms Details
Available Statuses |
---|
open |
closed |
scheduled |
archived |
deleted |
Webhooks Details
Statuses
Available Statuses |
---|
enabled |
disabled |
Types
Id | Available Types |
---|---|
1 | Standard webhook |
2-20 | Internal webhook types that should not be edited |
Currency Details
Note: additional new currencies can be added at any time.
Code | Name | Symbol |
---|---|---|
USD | United States dollar | $ |
CAD | Canadian dollar | $ |
AUD | Australian dollar | $ |
NZD | New Zealand dollar | $ |
GBP | British pound sterling | £ |
MXN | Mexican peso | $ |
EUR | Euro | € |
CHF | Swiss Franc | FR |
CNY | Chinese Yuan Renminbi | ¥ |
JPY | Yen | ¥ |