Deprecated: Function get_magic_quotes_gpc() is deprecated in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 99

Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 619

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1169

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176
Webconnex API
Nothing Special   »   [go: up one dir, main page]

NAV
cURL Go NodeJS Swift Python

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:

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. Integration Listings

Clicking on an integration will navigate to the details page where you can configure various options.

Webhook Settings

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.

Recent Webhooks

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.

Webhook Details

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
email 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
email 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.

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 ¥