Donation Form


As part of the OWASP website migration, we will creating a new Donation form that will use Stripe as a back end. This should be a simple form that is hosted on the website and will serve as a proof of concept for (1) hosting secure forms on github, (2) test the viability of Stripe for payment processing, and (3) integrating Stripe form activities with light integrations with other key data in the OWASP ecosystem.

Current working demo at Form will handle &title and &currency parameters


  1. Securely host a form oun our public github instance and collect donations
  2. Put form into production as of 15-November
  3. Move data from successful Sripe traction into Mailchimp
  4. Recognize donors and the projects/chapters they support




  1. Visitor clicks on a donate link someplace in OWASP Universe
    1. Page on website
    2. Link from an email
    3. Link from a partner
  2. Donate button will receive two parameters from donate link
    1. Title of the page
    2. Repo path (for light integrations)
  3. Donation page has:
    1. Introductory copy about “Why Donate to OWASP Foundation”
    2. pre-set donation amounts of $10, $25, $50, $100 and other.
    3. Check box to indicate “Make a Recurring Monthly gift”
    4. If there is a Page Title passed to the page then
      1. Check box to indicate attribution, “Publicly list me as a supporter of [referring url title]”
      2. Otherwise, do not show this field since this inbound link was from a non-attributable source
    5. Check box to “Join the OWASP Mailing List”
    6. Small legal copy that the gift is unrestricted and can be used for any purpose.
    7. [Optional] Links/Info about how the Foundation uses gifts
    8. [Optional] Tab for selecting one of 2-3 currencies.
  4. Click “Donate” and given Stripe transaction form
  5. All form data and transaction stored into Stripe
  6. Light Integrations move data
    1. Donor email address will be added to Mailchimp with the date of the donation in mailchimp.first_donation_date
      1. Stripe will handle sending a receipt
      2. Mailchimp will handle sending New DOnor Curriculum
    2. If donor selected “Add me to mailing list”
      1. The text “, donor” will be appended to Mailchimp.type
      2. Boolean for “marketing_emails” in Mailchimp will be set to true
    3. If donor slected “Publicly list me..” - a pull request will be created for the page target project/chapter page of that will add the name to an unordered list for that page.
  7. After completing integrations, update field in Stripe that donation was processed through integrations.

Added Feature: Handling (Optional) Restricted Gifts

  1. Donation form includes another check box field “restricted” that by default is HIDDEN and not required input.
  2. If the query string includes “restricted=yes” the field is shown CHECKED with “I understand this restricted gift amount is net 15% administration costs and unspent restricted gift balances become unrestricted at the end of each calendar year.”
  3. When Restricted, to submit the form: 1. The amount MUST be more than $1,000 2. The checkbox MUST be checked.
  4. State of this field is saved in Stripe as “yes” when checked, NULL when empty.

Mailchimp CRM Insert

~~membership-start-date~~ {unused}
~~membership-end-date~~ {unused}
~~membership-type~~ {unused}
source [donateform-api]


Hourly rate expected to be less than $1,500.