This article provides an overview OnlineFundraising's open REST APIs and how they relate to the OnlineFundraising datamodel. Before reading this article, you should have a basic understanding of the payment entities the data model consists of as described in our support article about the data model. Furthermore, this article assumes fundamental knowledge about entity relationship diagrams.
2. API Overview and Advanced Datamodel
The figure below depicts a relational diagram of the OnlineFundraising data model, and an overview of which API relates to which entities.
Figure: Relational Diagram of OnlineFundraising data model with crow's foot notation. Hover over the picture to see an API overview. Click to get a larger diagram in a new window. Note that the entity DataSet points to all entities marked with a golden square in the lower left corner. In addition, some relations are labelled. Read below for an explanation of labelled relations.
Relation A: Relation is only relevant for the following gateways: ePay, Bambora.
Relation B1: Relation is always 1:1 with one exception (See B2).
Relation B2: Relation only relevant for payment method: Card.
Relation C: DataSet has a 1:1 relation too all entities marked with a golden icon i the bottom left corner.
Please refer to the complete API Documentation for in-depth documentation of each API.
2.1. Main Principles of Data Model
The entities in the Payment API only contain transactional data as a rule. Transactional data refers to data which is relevant in context of a transaction, either single or recurring. Contact data required by payment method is considered transactional data. Additional contact information should be managed in an external system such as a CRM system.
Important: OnlineFundraising does not update Contacts automatically, it only creates Contacts. Changes to contact data, including merging, have to be performed manually or via an integration.
The data model is non-customisable, which makes for a very rigid data model, ensuring a robust operational system.
It is possible to add a layer of metadata and process non-transactional data in OnlineFundraising using DataSet, an entity which points to all payment entities of the data model. OnlineFundraising has a dedicated DataSet API. Read the article Understanding DataSets to learn more.