DataSet Schema
The root level structure of a DataSet is the same for both transactional and non-transactional DataSets.
Property (Root level) |
a Format and Description |
---|---|
createdTs |
string<yyyy-MM-dd HH:mm:ss zzzz> Timestamp of DataSet creation |
dataSetGuid |
string<uuid> Unique GUID |
isThirdParty |
boolean Defines whether the data is managed by OnlineFundraising or not.
|
isTransactional |
boolean Defines whether the data is transactional or not.
|
jsonElement |
object JSON string containing several objects. The content of jsonElement depends on the sourceType. See schema details of base object. jsonElement is furthermore populated as such:
|
merchantId |
string Readable ID of the merchant |
sensitive_data |
array<string> Definition of custom sensitive data fields eligible for anonymisation.
|
sourceGuid |
string Defines the unique identifier of the source, i.e. Form, Onboarding or SMS. This field is empty if vendor has a value. |
sourceType |
string Defines the source of the DataSet. The field is populated as such:
This field is empty if vendor has a value.
|
updatedTs |
string<yyyy-MM-dd HH:mm:ss zzzz> Timestamp of DataSet update |
vendor |
string Defines the name of the integrator or their solution. The field is populated by the vendor themselves when creating DataSets via the API. If this field contains a value, sourceType and sourceGuid are empty. |
DataSet.jsonElement Schema (Base)
This section describes the base structure of the jsonElement. The properties described in this section are present for both transactional and non-transactional DataSets unless otherwise stated.
Property (jsonElement) |
Format and Description |
---|---|
formFields |
Array of formField (object) An array of objects containing field properties for inputType, label, name, and value. The fields contained in this array are both custom and standard, including UTM parameters. |
.inputType |
string Type input type of the the form field. |
.label |
string Label of the form field (visible in form) |
.name |
string The form field name |
.value |
string Value provided by end-user. |
formResult |
object An object containing the keys and values of a posted form. |
.{formField.name} |
string {formField.value} |
paymentSessionResult |
object Transactional An object containing relevant payment entity guids. |
.agreementGuidResult |
string<uuid> Unique GUID of resulting Agreement |
.contactGuidResult |
string<uuid> Unique GUID of resulting Contact |
.paymentGuidResult |
string<uuid> Unique GUID of resulting Payment |
.paymentMethodGuidResult |
string<uuid> Unique GUID of resulting Payment Method |
.subscriptionGuidResult |
string<uuid> Unique GUID of resulting Subscription |
.dataSetType (Deprecated) |
string A string usually populated by either “onboarding-form” or “onboarding-app”, but an integrator may assign something else. Replaced by sourceType. |
.dataSetThirdParty (Deprecated) |
boolean Boolean, indicating if the form submission’s payment method is third party to OnlineFundraising, and therefore will not be processed by the payment engine. |
.dataSetTransactional (Deprecated) |
boolean Boolean, indicating if the form submission is transactional in nature, as forms may also be used for petitions and other kinds of data collection. Replaced by isTransactional. |
.dataSetVendor (Deprecated) |
string A string presenting the name of an integrator's application or company, visible to the organisation in OnlineFundraising. Replaced by vendor. |
DataSet.jsonElement Schema (Form)
This section describes properties that are added to DataSet.jsonElement if the source is Form (sourceType = form).
Property (jsonElement) |
Format and Description |
---|---|
form_id |
string Id of the submitted form. Results in sourceType = "form". |
DataSet.jsonElement Schema (Onboarding)
This section describes properties that are added to DataSet.jsonElement if the source is Onboarding (sourceType = onboarding).
Property (jsonElement) |
Format and Description |
---|---|
campaign |
string
|
session |
string Transactional Id of the Onboarding session. Results in sourceType = "onboarding". |
workflow |
string
|
DataSet.jsonElement Schema (SMS)
This section describes properties that are added to DataSet.jsonElement if the source is SMS (sourceType = sms).
Property (jsonElement) |
Format and Description |
---|---|
campaign |
object Campaigns are - in an OnlineFundraising context - specific to sms'es. The Campaign boject contains data describing the service and (non-)transactional settings which come into play when an end-user sends an sms to your organisation. |
.active |
boolean Is campaign active or not. |
.agreementName |
string Transactional Name of agreement |
.agreementType |
string Transactional An agreement can be either shared (used by many Contacts, e.g. a membership) or personal. See documentation on Agreement for more information.
|
.amount |
double Transactional Summarised amount excluding VAT. |
.amountTotal |
double Transactional Summarised amount including VAT when charging. |
.amountVat |
double Transactional Amount of VAT |
.campaignGuid |
string<uuid> Unique identifier of Campaign. |
.campaignName |
string Name of Campaign. |
.cancelReplyText |
string Reply text when end-user cancels a Subscription. |
.contentType |
string The content type defines the fees applied to transactions.
|
.createdTs |
string<yyyy-MM-dd HH:mm:ss zzzz> Timestamp of Campaign creation. |
.currencyCode |
string Transactional |
.failedSmsPaymentReplyText |
string Transactional Reply text when a transaction failed at the gateway. |
.invoiceText |
string Transactional Invoice description. |
.keywordGuid |
string<uuid> Unique identifier of keyword. |
.merchantId |
string Readable ID of the merchant |
.metaData |
array<keyValuePair> An array of key value pairs containing metadata defined on the Campaign. |
.oneOff |
boolean Transactional Value is true if the agreement schedule is set to start imediately, resulting in a OneOff Payment. |
.purposeAccountingCode |
string Accounting code defined by merchant used to identify the receiving part of transactions. |
.replyText |
string Replying text message. |
.scheduleBaseTier |
integer Transactional The offset in relation to the chosen calendarUnit. C.f. examples. |
.scheduleCalendarUnit |
string Transactional Calculate due date based on the chosen calendarUnit.
|
.scheduleEveryOther |
integer Transactional Skip every other due date. C.f. examples. |
.scheduleFixedDay |
integer Transactional A fixed day of the chosen calendarUnit. Please note we do not accept the 29-31 of any month. C.f. examples. |
.scheduleType |
string Transactional
|
.serviceType |
string Service type of campaign.
|
.targetAudienceUnderAge |
boolean Defines if the Campaign is targeted individuals under 18. |
.taxDeductible |
boolean Transactional Defines basis for tax deductibility |
.unit |
string Transactional Definition of unit. Often only relevant in case of ContentType: PhysicalProduct.
|
.unitPrice |
double Transactional Price of one unit. |
.vatPercentage |
double Transactional VAT percentage. |
keyword |
object Object containing data describing Keyword configuration. |
.active |
boolean Describes if keyword is active or not. |
.campaignGuid |
string<uuid> Unique identifier of Campaign. |
.channel |
string Short code the keyword is configured for. |
.createdTs |
string<yyyy-MM-dd HH:mm:ss zzzz> Timestamp of Keyword creation. |
.keyword |
string Keyword in text form. |
.keywordGuid |
string<uuid> Unique identifier of the Keyword |
.keywordIdleText |
string Reply text for messages received on the keyword before and after approved donation dates, and if no active Campaign is related to the Keyword. |
.merchantId |
string Readable ID of merchant. |
smsMo |
object An object containing data on a received sms. Results in sourceType = "sms". |
.campaignGuid |
string<uuid> Unique GUID of Campaign |
.channel |
string Short code the sms was sent to |
.createdTs |
string<yyyy-MM-dd HH:mm:ss zzzz> Timestamp of sms creation. |
.keyword |
string Keyword matching the received text. |
.keywordGuid |
string<uuid> Unique identifier of Keyword. |
.merchantId |
string Readable ID of the merchant. |
.messageGuid |
string<uuid> Unique identifier of message (sms). |
.messageTs |
string<yyyy-MM-dd HH:mm:ss zzzz> Timestamp of sms, |
.msisdn |
string Phone number (including country code) the sms was sent from. |
.origin |
string E.g. "smsCPH" |
.processedTs |
string<yyyy-MM-dd HH:mm:ss zzzz> Timestamp of sms received and processed. |
.receivedText |
string The text received from sender. |
.smscphMessageGuid |
string<uuid> Unique GUID of CPH message. |
.state |
string The state of the sms.
|
smsMt |
object An object containing data on response sms |
.callbackUrl |
string Url for callbacks. |
.channel |
string Short code the sms was received on. |
.createdTs |
string<yyyy-MM-dd HH:mm:ss zzzz> Timestamp of response sms creation. |
.deliveredTs |
string<yyyy-MM-dd HH:mm:ss zzzz> Timestamp of response sms delivery. |
.externalId |
string Keyword matching the received text. Must exist in SMS Inbound. |
.handleCallback |
boolean
|
.keyword |
string Keyword matching the received text. |
.merchantId |
string Readable ID of merchant. |
.messageGuid |
string<uuid> Unique identifier of reply sms. |
.moReferenceGuid |
string Unique identifier of the received sms. |
.msisdn |
string Phone number (including country code) the reply sms was sent to. |
.senderAlias |
string Sender alias as provided by merchant. |
.serviceId |
string E.g. "1962-TEST" (short code + keyword) |
.smscphMessageGuid |
string<uuid>
|
.state |
string |
.subscriptionMessage |
string
|
.text |
string Content of reply sms. Corresponds to campaign.replyText. |
Examples
Example of DataSet - Form
{
"dataSetGuid": "4e6c4a00-314f-4370-b6c5-xxxxxxxxxxxx",
"merchantId": "onlinefundraising",
"createdTs": "2022-07-12 09:00:14 +0200",
"updatedTs": "2022-07-12 09:00:39 +0200",
"sourceType": "form",
"sourceGuid": "101",
"isTransactional": true,
"isThirdParty": false,
"sensitive_data": [
"middleName",
"phone2"
],
"jsonElement": {
"formResult": {
"name": "John Doe",
"email": "john.doe@yourdomain.tld",
"...": "..."
},
"formFields": [
{
"inputType": "text",
"label": "Name",
"name": "name",
"value": "John Doe"
},
{
"inputType": "email",
"label": "Email",
"name": "email",
"value": "john.doe@yourdomain.tld"
},
{
"...": "..."
}
],
"paymentSessionResult": {
"postProcessedTs": "2019-12-31 15:59:59 +0100",
"postProcessingErrorTs": "2019-12-31 15:59:59 +0100",
"postProcessingErrorDescription": "",
"contactGuidResult": "a863d62e-d53b-4651-9b7b-xxxxxxxxxxxx",
"paymentMethodGuidResult": "a863d62e-d53b-4651-9b7b-xxxxxxxxxxxx",
"agreementGuidResult": "a863d62e-d53b-4651-9b7b-xxxxxxxxxxxx",
"subscriptionGuidResult": "a863d62e-d53b-4651-9b7b-xxxxxxxxxxxx",
"paymentGuidResult": "a863d62e-d53b-4651-9b7b-xxxxxxxxxxxx"
}
}
}
Example of DataSet - Onboarding
{
"dataSetGuid": "4e6c4a00-314f-4370-b6c5-xxxxxxxxxxxx",
"merchantId": "onlinefundraising",
"createdTs": "2022-07-12 09:00:14 +0200",
"updatedTs": "2022-07-12 09:00:39 +0200",
"sourceType": "onboarding",
"sourceGuid": "86338d0c-5c08-4312-85c6-xxxxxxxxxxxx",
"isTransactional": true,
"isThirdParty": false,
"jsonElement": {
"workflow": {
"workflowGuid": "42b7b297-4589-42cf-867f-xxxxxxxxxxxx",
"name": "Callcenter",
"merchantId": "onlinefundraising",
"createdTs": "2020-09-21 13:56:04 +0200",
"active": true,
"serviceType": "SignUp",
"signUpProducts": [
{
"uuid": 0,
"collapsed": false,
"paymentType": "Recurring",
"productName": "Membership",
"currencyCode": "DKK",
"scheduleType": "Monthly",
"agreementName": "Membership",
"agreementType": "Personal",
"taxDeductable": false,
"paymentRequired": false,
"expiresAfterDate": {},
"scheduleEveryOther": 1,
"agreementDescription": "Mange tak for din støtte.",
"scheduleCalendarUnit": "Month",
"paymentMethodTypeCard": false,
"paymentMethodTypeTest": false,
"scheduleStartTypeFirst": true,
"scheduleStartTypeCustom": false,
"paymentMethodTypeMobilePay": true,
"communicationCollectionGuid": "403fa411-aefb-49bd-b499-xxxxxxxxxxxx",
"paymentMethodTypeBetalingsservice": true
}
],
"contactDataFields": [
{
"name": "firstName",
"uuid": 0,
"label": "Fornavn",
"required": true,
"hiddenToEndUser": false
}
],
"metaDataFields": [
{
"name": "Underskriftsindsamling",
"label": "Underskriftsindsamling",
"value": "Yes",
"options": "",
"readonly": false,
"required": false,
"inputType": "hidden"
}
],
"checkoutMessage": "Hej, Tak for din interesse og opbakning.",
"urlShortener": "GIIV",
"senderAlias": "OF"
},
"campaign": {
"campaignGuid": "e793c63e-a8c0-452a-8070-xxxxxxxxxxxx",
"createdTs": "2020-09-22 11:54:12 +0200",
"active": true,
"name": "Intern - Kanvas ",
"firstDate": "2020-10-01 00:00:00 +0200",
"lastDate": "2023-01-01 00:00:00 +0100",
"merchantId": "onlinefundraising",
"agencyId": "callcenter",
"workflowGuid": "42b7b297-4589-42cf-867f-xxxxxxxxxxxx"
},
"session": {
"sessionGuid": "fdbb744f-f241-49f2-98c3-xxxxxxxxxxxx",
"createdTs": "2023-02-10 13:44:59 +0100",
"status": "Completed",
"serviceType": "SignUpRecurring",
"completionChannel": "PaymentSessionHandler",
"merchantId": "onlinefundraising",
"agencyId": "callcenter",
"userGuid": "8cc2119d-486b-4f4d-96cd-xxxxxxxxxxxx",
"userName": "John",
"campaignGuid": "e793c63e-a8c0-452a-8070-xxxxxxxxxxxx",
"workflowGuid": "42b7b297-4589-42cf-867f-xxxxxxxxxxxx",
"leadGuid": "cd150cbb-9d73-450c-ac05-xxxxxxxxxxxx",
"externalLeadId": "xxxxxxxxxxxx",
"contactData": {
"firstName": "John"
},
"agreementData": {
"name": "Membership",
"unit": "pcs",
"state": "Available",
"amount": "75.00",
"amountVat": "0.00",
"unitPrice": "75.00",
"amountTotal": "75.00",
"description": "Mange tak for din støtte.",
"currencyCode": "DKK",
"scheduleType": "Monthly",
"agreementType": "Personal",
"taxDeductable": false,
"vatPercentage": "0.00",
"defaultQuantity": 1,
"paymentRequired": false,
"scheduleBaseTier": 3,
"scheduleFixedDay": 1,
"scheduleEveryOther": 1,
"scheduleCalendarUnit": "Month",
"communicationCollectionGuid": "403fa411-aefb-49bd-b499-xxxxxxxxxxxx"
},
"subscriptionData": {
"startDate": "2023-03-01"
},
"paymentMethodData": {
"paymentMethodType": "Betalingsservice"
},
"metaData": {
"Underskriftsindsamling": "Yes"
},
"completedTs": "2023-02-10 13:45:43 +0100",
"dataSetGuid": "60bbdc9c-1f2e-49ef-9448-xxxxxxxxxxxx",
"communicationCollectionGuid": "403fa411-aefb-49bd-b499-xxxxxxxxxxxx",
"paymentSessionGuid": "08a18891-3672-4e8e-868e-xxxxxxxxxxxx"
},
"formResult": {
"name": "John Doe",
"email": "john.doe@yourdomain.tld",
"Underskriftsindsamling": "Yes"
},
"formFields": [
{
"inputType": "text",
"label": "Name",
"name": "name",
"value": "John Doe"
},
{
"inputType": "email",
"label": "Email",
"name": "email",
"value": "john.doe@yourdomain.tld"
},
{
"inputType": "text",
"label": "Underskriftsindsamling",
"name": "Underskriftsindsamling",
"value": "Yes"
}
],
"paymentSessionResult": {
"postProcessedTs": "2019-12-31 15:59:59 +0100",
"postProcessingErrorTs": "2019-12-31 15:59:59 +0100",
"postProcessingErrorDescription": "",
"contactGuidResult": "a863d62e-d53b-4651-9b7b-xxxxxxxxxxxx",
"paymentMethodGuidResult": "a863d62e-d53b-4651-9b7b-xxxxxxxxxxxx",
"agreementGuidResult": "a863d62e-d53b-4651-9b7b-xxxxxxxxxxxx",
"subscriptionGuidResult": "a863d62e-d53b-4651-9b7b-xxxxxxxxxxxx",
"paymentGuidResult": "a863d62e-d53b-4651-9b7b-xxxxxxxxxxxx"
}
}
}
Example of DataSet - SMS
{
"dataSetGuid": "4e6c4a00-314f-4370-b6c5-xxxxxxxxxxxx",
"merchantId": "onlinefundraising",
"createdTs": "2022-07-12 09:00:14 +0200",
"updatedTs": "2022-07-12 09:00:39 +0200",
"sourceType": "sms",
"sourceGuid": "86338d0c-5c08-4312-85c6-xxxxxxxxxxxx",
"isTransactional": true,
"isThirdParty": false,
"jsonElement": {
"smsMo": {
"state": "Processed",
"msisdn": "4526807821",
"origin": "smsCPH",
"channel": "1962",
"keyword": "TEST",
"createdTs": "2022-11-03 13:41:04 +0100",
"messageTs": "2022-11-03 13:41:04 +0100",
"merchantId": "onlinefundraising",
"keywordGuid": "86338d0c-5c08-4312-85c6-xxxxxxxxxxxx",
"messageGuid": "00b4acf1-69aa-417c-b9cb-xxxxxxxxxxxx",
"processedTs": "2022-11-03 13:41:04 +0100",
"campaignGuid": "549ef96e-633a-451c-bc51-xxxxxxxxxxxx",
"receivedText": "Test",
"smscphMessageGuid": "55815ff3-aad7-4258-8650-xxxxxxxxxxxx"
},
"smsMt": {
"text": "Tak for din besked",
"state": "Delivered",
"msisdn": "4526807821",
"channel": "1962",
"keyword": "TEST",
"createdTs": "2022-11-03 13:41:04 +0100",
"serviceId": "1962-TEST",
"externalId": "1667479264400",
"merchantId": "onlinefundraising",
"callbackUrl": "https://SMS-INBOUND-API-URL/SmsCallback",
"deliveredTs": "2022-11-03 13:41:08 +0100",
"messageGuid": "44d6a5d5-73a5-4259-b0c1-xxxxxxxxxxxx",
"senderAlias": "1962",
"handleCallback": true,
"moReferenceGuid": "00b4acf1-69aa-417c-b9cb-xxxxxxxxxxxx",
"smscphMessageGuid": "833a5c73-c062-4aa4-b122-xxxxxxxxxxxx",
"subscriptionMessage": false
},
"keyword": {
"active": true,
"channel": "1962",
"keyword": "TEST",
"createdTs": "2022-03-14 10:57:10 +0100",
"merchantId": "onlinefundraising",
"keywordGuid": "86338d0c-5c08-4312-85c6-xxxxxxxxxxxx",
"campaignGuid": "549ef96e-633a-451c-bc51-xxxxxxxxxxxx",
"keywordIdleText": "Hej. Tak for din besked. Keywordet er ikke aktivt."
},
"campaign": {
"unit": "pcs.",
"active": true,
"amount": 1,
"oneOff": false,
"metaData": [
{
"key": "Permission",
"value": "Given"
}
],
"amountVat": 0,
"createdTs": "2022-04-26 11:16:41 +0200",
"replyText": "Tak for din besked",
"unitPrice": 1,
"merchantId": "onlinefundraising",
"amountTotal": 1,
"contentType": "HumanitarianDonation",
"invoiceText": "TEST",
"serviceType": "Message",
"campaignGuid": "549ef96e-633a-451c-bc51-xxxxxxxxxxxx",
"campaignName": "Message with meta",
"currencyCode": "DKK",
"scheduleType": "Monthly",
"agreementName": "Test-aftale",
"agreementType": "Personal",
"taxDeductable": false,
"vatPercentage": 0,
"cancelReplyText": "Canceltext",
"scheduleBaseTier": 1,
"scheduleFixedDay": 1,
"scheduleEveryOther": 1,
"scheduleCalendarUnit": "Month",
"purposeAccountingCode": "PAC",
"targetAudienceUnderAge": false,
"failedSmsPaymentReplyText": "Failedtext"
},
"formFields": [
{
"name": "Permission",
"value": "Given"
}
],
"formResult": {
"Permission": "Given"
},
"paymentSessionResult": {
"postProcessedTs": "2019-12-31 15:59:59 +0100",
"postProcessingErrorTs": "2019-12-31 15:59:59 +0100",
"postProcessingErrorDescription": "",
"contactGuidResult": "a863d62e-d53b-4651-9b7b-xxxxxxxxxxxx",
"paymentMethodGuidResult": "a863d62e-d53b-4651-9b7b-xxxxxxxxxxxx",
"agreementGuidResult": "a863d62e-d53b-4651-9b7b-xxxxxxxxxxxx",
"subscriptionGuidResult": "a863d62e-d53b-4651-9b7b-xxxxxxxxxxxx",
"paymentGuidResult": "a863d62e-d53b-4651-9b7b-xxxxxxxxxxxx"
}
}
}
Example of DataSet - Vendor
{
"dataSetGuid": "4e6c4a00-314f-4370-b6c5-xxxxxxxxxxxx",
"merchantId": "onlinefundraising",
"createdTs": "2022-07-12 09:00:14 +0200",
"updatedTs": "2022-07-12 09:00:39 +0200",
"vendor": "My Fundraising Application",
"isTransactional": true,
"isThirdParty": false,
"sensitive_data": [
"middleName",
"phone2"
],
"jsonElement": {
"formResult": {
"name": "John Doe",
"email": "john.doe@yourdomain.tld",
"...": "..."
},
"formFields": [
{
"inputType": "text",
"label": "Name",
"name": "name",
"value": "John Doe"
},
{
"inputType": "email",
"label": "Email",
"name": "email",
"value": "john.doe@yourdomain.tld"
},
{
"...": "..."
}
],
"paymentSessionResult": {
"postProcessedTs": "2019-12-31 15:59:59 +0100",
"postProcessingErrorTs": "2019-12-31 15:59:59 +0100",
"postProcessingErrorDescription": "",
"contactGuidResult": "a863d62e-d53b-4651-9b7b-xxxxxxxxxxxx",
"paymentMethodGuidResult": "a863d62e-d53b-4651-9b7b-xxxxxxxxxxxx",
"agreementGuidResult": "a863d62e-d53b-4651-9b7b-xxxxxxxxxxxx",
"subscriptionGuidResult": "a863d62e-d53b-4651-9b7b-xxxxxxxxxxxx",
"paymentGuidResult": "a863d62e-d53b-4651-9b7b-xxxxxxxxxxxx"
}
}
}
Additional Properties
Besides fields configured in our form builder, DataSet.formFields and DataSet.formResult can contain the following list of additional fields, should they be populated:
label |
name |
Description |
---|---|---|
UTM Source |
utm_source |
Useful when tracking source of traffic |
UTM Medium |
utm_medium |
Useful when tracking source of traffic |
UTM Campaign |
utm_campaign |
Useful when tracking source of traffic |
UTM Content |
utm_content |
Useful when tracking source of traffic |
UTM Term |
utm_term |
Useful when tracking source of traffic |
Embed URL |
embed_url |
The URL containing the embedded form |
Referer URL |
referer_url |
The URL leading to the embedded form, such as “https://l.facebook.com/” |
Form width |
width |
The width of the embedded form in pixels, used to apply mobile styling |
Device width |
device |
The width of the device in pixels, used to negate mobile styling based on device |
OS |
os |
Operating System, such as: “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" |
IP |
ip |
IP address |
Google Analytics Client ID |
_ga |
The Google Analytics Client ID received from URL with embedded form |