Fundraising/Data and flow
[WIP] older docs at Fundraising#F Data and flow.
The Data and flow section of Fundraising Tech documentation explains data structures and processes involving multiple components in our stack. On this page, you'll find general overviews; see sub-pages under Fundraising/Data and flow (also linked below) for details.
The most important categories of processes are: donation, recurring charge, audit and e-mail export. There are also many processes, both automated and manually triggered, that don't fit into any of these categories.
Donation
Donation involves interaction with donors via a UI. Donors provide payment details or credentials, and authorize a one-time donation and/or a monthly subscription. A successful donation flow concludes with donor information stored in CiviCRM and a thank-you e-mail sent to the donor.
We have three mutually exclusive donation flow options: one-time, recurring, and monthly convert.
Every implemented permutation across payment processor/payment method/donation flow options can follow a unique sequence of steps, in terms of interactions among donors, our servers and payment processors, generation and consumption of queue messages, and database queries and writes.
In documentation about donation flows, payment by credit card without 3DS (cc) is separated from credit card with 3DS (cc-3DS), since the flows can be different. (However, in our systems, credit card payments are represented as a single payment method, regardless of whether 3DS was used.)
Payment processor/payment method/donation flow permutations
processor | payment method | one-time | recurring | monthly convert |
---|---|---|---|---|
adyen | cc | Y | Y | Y |
adyen | cc-3DS | Y | Y | Y |
adyen | ApplePay | Y | Y | ? |
adyen | GPay | Y | ? | ? |
adyen | rtbt-iDEAL | Y | Y | ? |
ingenico | cc | Y | Y | Y |
ingenico | cc-3DS | Y | Y | Y |
ingenico | rtbt-iDEAL | Y | Y | ? |
paypal_ec | paypal | Y | Y | ? |
braintree | paypal | Y | ? | ? |
amazon | amazon | Y | ? | ? |
dlocal | cc | Y | ? | ? |
dlocal | cc-3DS | ? | ? | ? |
dlocal | rtbt-? | Y | ? | ? |