13

I wondered if anyone could advise on the best way of storing a users acceptance of the Terms and Conditions in the database. I am in the UK if this changes anything.

I have had the T&Cs drawn up by a UK Lawyer so don't need any advice on that part!

At the moment I am thinking at the time of signup having a checkbox saying "I agree to the [linked] terms and conditions" and making sure this is checked to sign them up. In the database I will have a boolean saying True and also a Timestamp along with the email address they used to signup.

Is this enough, if a user ever decided they wanted to challenge their acceptance is this recognised as proof? I have been able to find very little, if no, information about this on the web.

2
  • 1
    Just to clarify, "making sure this is checked" should be implemented as opt-in. I.e.: checked by the user, not checked by the form designer. You must have proof of user consent, and inaction does not prove consent. (EU rules apply here, AFAICT)
    – MSalters
    Commented Jul 18, 2011 at 13:54
  • Yes, that is what I was planning
    – bateman_ap
    Commented Jul 18, 2011 at 14:04

3 Answers 3

13

The documents may change when time passes. They get clarifications and modifications. Since this is a legal document, I would store the actual time of acceptance and link the acceptance to exact document version that was accepted. This prevent any ambiguities due the fact that users that registered on 2010 accepted version 1.2 and users registered later accepted version 1.3.

Also it does not hurt to store the actual documents to the database.

1
  • +1. This. Note that users may have accepted different versions of the document at different times, so the primary key should be (userid, docid) and additional data outside the primary key would be the acceptance timestamp.
    – juhist
    Commented Jul 3, 2019 at 8:56
6

In case someone ends up on this post as I did, here are some a bit more up-to-date ideas in the era of GDPR :

The way I would do it is by saving the timestamp of agreement and the IP address of the user. I would also write down the "version" of the ToS the User has accepted (timestamp of last update works), so that I could easily retrieve a list of people I need to notify of a change, or ask them for their approval on the changes.

To me the combination of IP + timestamp is helpful because in most cases you can link that to an Internet connection/location/person with the help of internet providers (highly unlikely that you would need to go that far but it will probably seduce the GDPR compliance inspector).

2
  • 1
    The idea of IP + timestamp is interesting but could you please source why that would seduce a GDPR compliance inspector? Collecting and storing IP that way could seem more like an additional thing that you would need to be careful with in the context of GDPR
    – 7hibault
    Commented Sep 8, 2020 at 12:56
  • I really like the idea of storing the IP Address as it is important to know where the user was while accepting the ToS/ToC since each country has their own set of rules.
    – SajidSalim
    Commented Aug 3, 2021 at 15:04
3

Usually T&C acceptance is a one-time event, so I don't see a need to handle a situation where users will want to revert their choice. If the T&C changes, you could always prompt the user to re-agree with the new terms, and go from there.

2
  • Agreed, I was more looking at whether my method of storing they had "agreed to the T&C" was the right way of going about it. I keep thinking, if you get someone to do something offline they sign something, is entering in your email and clicking a box comparable, especially if it is only code logic that you would have to back it up
    – bateman_ap
    Commented Jul 17, 2011 at 22:05
  • 1
    I would really think that is sufficient. There are no other methods possible. The best you can do is store a boolean value of whether or not the user agrees to it. No digital companies make you sign anything or require any other checks to that T&C agreement. I would follow suite with the big dogs of software and go with just that.
    – user29981
    Commented Jul 18, 2011 at 0:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.