16 July 2019
While we covered various ways on how to announce the updates of your legal agreements to users (and why this is important), we mentioned how far more important is for the legal agreements to be enforceable.
Legal agreements your website or mobile app can be any of the below:
One way to make the legal agreements unenforceable is to adopt the so-called browse-wrap technique, where your legal agreements sit in the footer of your website.
Here's the footer section of Facebook.com:
To make the agreements enforceable, adopt the the click-wrap technique instead:
Here's how Zappos.com is placing a notification of the legal agreements before users can create an account on their website:
Here's how EngineYard is placing a mandatory checkbox to be checked before you register:
If you have a mobile app, the same click-wrap technique can be done with 2 buttons: 1 to decline, 1 to accept. Here is how Airbnb is doing this with 2 buttons (Disagree and Accept), but also with a checkbox as an extra step:
APIs (API stands for Application Programming Interface), however, face a different challenge: how can you have a checkbox that users must check to be sure that users agree to your legal agreements before using the API?
API developers can try any of the following (examples below):
In this case, you place the legal agreements right before developers can create an account using the click-wrap technique to make it mandatory for the developers to check a checkbox (or have proper notification of the legal agreements).
In this case, developers accessing the API for the first time will be prompted to read the legal agreements and provide their confirmation, e.g. type accept to accept the agreement or type decline to decline it.
Because other developers wanting to access your API need to have an account from which they can receive the access key, you can implement the click-wrap method.
You can implement this either when developers are creating an account for the first time or when they are requesting the access key for the first time.
Here is how Fabric.io, from Twitter, is implementing an "I Agree to the Facebric Software and Services Agreement" click-wrap technique:
Apple's Xcode can be used as an example for Method #2 explained above, where you could list the agreement via the API itself and developers must agree to it before they use the API.
This can be useful for APIs that aren't requiring developers to have an account with you or have an access key.
It's not recommended to use this method if the API stops functioning because the developer must agree to the agreement. It can interrupt various services that you're providing to developers.
After you install Xcode and do not run it for the first time to agree to the legal agreements, Xcode is notifying you of this when you open Terminal:
The text is clear:
You have not agreed to the Xcode license agreements. You must agree to both license agreements below in order to use Xcode.
Xcode provides a direct path where the license agreement is available, but the full agreement is also listed in the Terminal:
The confirmation you're giving isn't a simple Enter key, but you're required to type agree in order to accept the license agreement.
This is similar to an "I agree to the Terms of Service" checkbox.
Here is the last paragraph that is requiring you to type agree:
The text reads:
By typing 'agree' you are agreeing to the terms of the software license agreements. Type 'print' to print them or anything else to cancel, [agree, print, cancel]
Making sure the legal agreements are available to developers using your API is important, but it's more important to make sure that these legal agreements are properly available to developers before they use the API for the first time, they are informed of these agreements and that they agree to the terms you've set.
This article is not a substitute for professional legal advice. This article does not create an attorney-client relationship, nor is it a solicitation to offer legal advice.