White Label API

Overview

The White Label API service provides you with much more flexibility over the White Label Embed service, with the goal being that your visitors have no idea that your website or application is not providing the service. However, it requires coding skills, and it requires you to have your own database of customers.

Our White Label API is a stripped-down version of our legal document creation services. All surrounding logos, graphics, navigation buttons and links that take the user away from each service have been removed.

This allows you to embed our legal document creation services within your own branded website or application, making it appear as if these services are being provided by you.

Furthermore, you set your own pricing for all of these legal document creation services, and handle all payments from your customers yourself. (This is in contrast to the White Label Embed service, where we set the pricing, handle all payments, and all you can do is provide an optional discount to your customers and obtain a commission.)

Here's how it works:

  • You either allow users to register on your website, or you have existing users in your database. The important thing is that you already know their: First Name, Last Name, Email Address, and Country.
  • The user clicks on a link or button within your website or application, with the intention of accessing a specific legal document creation service, such as "mywill" (Last Will and Testament), "mypowerofattorney" (Power Of Attorney), etc..
  • If this is the first time this user is accessing any of the services, then you must send a create_user API command to create a new user account in our database.
  • If this is not a new user, then you should send a validate_login API command to check if any errors will be encountered if you try to login this user. This allows you to deal with any potential errors within your own code, instead of having the user see an error message on our website.
  • An embedded frame or web browser is launched by you, which sends a login API command and takes the user to the following URL using POST: https://legalwills.services/whitelabel.
  • The user is presented with a menu of options associated with the specific legal document creation service they wanted to access. This is provided by our website, and does not require any coding by you.
  • The user can create, modify, view, download, and delete the specific legal document. This is provided by our website, and does not require any coding by you.
  • If the legal document creation service being accessed has not been paid for, then the user can still create/modify the entire document, but they can only view/download the first page of the document. This is provided by our website, and does not require any coding by you.
  • You might want to implement some way for the user to close or navigate away from the embedded frame/browser and get back to your website or application. It is up to you to figure out what works best for your solution.
  • You must provide a way for the user to pay for one or more of the legal document creation services. This could be as simple as a PayPal "Buy Now" button. You set your own prices and take your own payments from users.
  • When the user pays for specific legal document creation services, you send a modify_user API command to enable these services within their account. Note that this can also be done within the create_user API command.

In order to use the White Label API, you must store certain user information within your own database and provide a front end implementation for accessing our legal document creation services.

  • At minimum, you must store each user's UserID and Password for accessing our services. These values are required in order to use the login API command. In practice, you will probably also want to store their First Name, Last Name, Email Address, and Country. These values are required in order to use the create_user API command to create a new user account in our database.
  • Since the White Label API only allows the user to access a specific service at a time, the user cannot navigate to any kind of an "account status" page on our website. As a result, we recommend that you take it upon yourself to indicate to each user what services they have enabled, their current membership length, etc. This requires you to keep track of these items in your own database.
  • If you are allowing your users to access more than one of our legal document creation services, then you should also provide some kind of menu or list of services from which your user can select which service to access. When they select a service, that is where our White Label API takes over.

Since the whole point of this API is that the user has no idea that they are being handled by the LegalWills.co.za website, you must handle all payments and emails/communication with the users of these legal document creation services.

Customer support for these services can be handled by the LegalWills.co.za support team, but you may want to remain as the primary contact, sending any such support requests to us for handling as required. Furthermore, your users must agree to the LegalWills.co.za Terms of Use (which you could simply embed within your own Terms of Use) before accessing our services. The details of these arrangements are specified in your services agreement.

Using links provided below, you can obtain a list of all users that you have created, indicating the associated legal document creation services that you have enabled within their accounts and the length of their memberships. You are responsible for providing payment to PartingWishes Inc. for all such enabled services and membership lengths, as outlined in your services agreement contract.


Sample VB.NET Code

Sending data using POST and reading the response data can be done in any popular coding language. Below is some sample VB.NET code for achieving this purpose. When sending the POST, remember to URL-encode each value in the name-value pairs.


Dim strNVP As String = "CMD=create_user" + _
    "&AFFILIATE_ID=123456789" + _
    "&AFFILIATE_SIGNATURE=Z9SFMNM5V9BYTWPRBOJK" + _
    "&USERID=" + Server.UrlEncode("janedoe") + _
    "&PASSWORD=" + Server.UrlEncode("abc123") + _
    "&FIRST_NAME=" + Server.UrlEncode("Jane") + _
    "&LAST_NAME=" + Server.UrlEncode("Doe") + _
    "&EMAIL=" + Server.UrlEncode("[email protected]") + _
    "&COUNTRY=" + Server.UrlEncode("Canada") + _
    "&ADDRESS_LINE1=" + Server.UrlEncode("123 Main Street") + _
    "&ADDRESS_LINE2=" + Server.UrlEncode("Suite 400") + _
    "&CITY=" + Server.UrlEncode("Toronto") + _
    "&STATEPROV=" + Server.UrlEncode("Ontario") + _
    "&POSTALCODE=" + Server.UrlEncode("M5P 3X9") + _
    "&GENDER=" + Server.UrlEncode("F") + _
    "&MYWILL=" + Server.UrlEncode("Y") + _
    "&MEM_YEARS=" + Server.UrlEncode("5") + _
    "&TEST_USER=" + Server.UrlEncode("Y")

'Create web request and web response objects
Dim hwrWebRequest As System.Net.HttpWebRequest = DirectCast(System.Net.WebRequest.Create("https://legalwills.services/whitelabel"), System.Net.HttpWebRequest)
hwrWebRequest.Method = "POST"
hwrWebRequest.ContentType = "application/x-www-form-urlencoded"
Dim requestWriter As New System.IO.StreamWriter(hwrWebRequest.GetRequestStream())

'Send the web request
requestWriter.Write(strNVP)
requestWriter.Close()

'Get the response
Dim hwrWebResponse As System.Net.HttpWebResponse = DirectCast(hwrWebRequest.GetResponse(), System.Net.HttpWebResponse)
Dim responseReader As New System.IO.StreamReader(hwrWebRequest.GetResponse().GetResponseStream())

'Read the response
Dim strResponseData As String = responseReader.ReadToEnd()
responseReader.Close()
hwrWebResponse.Close()

'URL-decode the response
Dim strResultCode As String = Server.UrlDecode(strResponseData)

'Handle any errors
If strResultCode <> "OK" Then
    ...
End If

Sample HTML Code

To allow a user to access the White Label version of a particular legal document creation service, simply send your user to https://legalwills.services/whitelabel using POST, and specify the login API command. To avoid exposing our https://legalwills.services/whitelabel URL to your visitors, we recommend that the POST be sent to an embedded iframe on your website, instead of to a new web browser window.


<form id="form1" action="https://legalwills.services/whitelabel" method="POST" target="iframe1">
        <input type="hidden" name="CMD" value="login" />
        <input type="hidden" name="AFFILIATE_ID" value="123456789" />
        <input type="hidden" name="USERID" value="9BHpRteLnjHl4KikmJwvVfPPZeOy1vSc3yauTjJT_3Edk5jT8CYQxZF3BxaZuuerxvzmYxZa5aDVaWM2DuU_7ayJoVGtswf7_VfvvG2XqO41" />
        <input type="hidden" name="PASSWORD" value="ARVC2MS_roiFasiiZNQZQMWwrcrN9jMje9GpjLpPWwAtHgoLVy7mz9Dtfjos48QiY8lAokUWeuvAQZuyicxpQf09dvlWxp58imKx4gZUCns1" />
        <input type="hidden" name="SERVICE_NAME" value="mywill" />
</form>

<iframe name="iframe1" id="iframe1" src="https://legalwills.services/whitelabel" width="100%" height="1000"></iframe>

<script type="text/javascript">
    document.forms['form1'].submit();
</script>

Demo Website

We have created a fully functional website that uses the White Label API to provide online estate planning services: FinalWills.com. Feel free to try it out!

We are even providing you with the full source code for this demo website. This allows you to examine all aspects of the code, should you have any questions about how to make use of the White Label API. Be sure to read the README.txt file for important information about understanding the code.

Download FinalWills.com Source Code

This demo website is implemented using ASP.NET Web Forms and VB.NET. It is for demonstration purposes only, showing how easy it is to make use of the White Label API within an existing website. Of course, this source code can be modified by you to use any web server technology and programming language.

Adding the "Online Estate Planning" section (which uses the White Label API) to this existing website took 1 developer less than 2 weeks of effort.


API Reference

The https://legalwills.services/whitelabel URL accepts the below name-value pairs in the POST. If any name-value pairs are sent that are not part of the API command, they will simply be ignored. All values should be URL-encoded so that any special characters are transmitted properly. An HTTP form is automatically URL-encoded by most browsers.

Field Description
CMD (Required) The command being sent to the White Label API. In this case, the value must be set to create_user. This value is case-insensitive. This command indicates that you want to create new account in the LegalWills.co.za database. No user interface will be presented. Only a single Result Code will be returned. If the user already exists, then nothing will happen, but you will receive an appropriate Result Code.
AFFILIATE_ID (Required) Your unique White Label API affiliate ID number is not yet assigned since your affiliate account is not set up to use the White Label API. This number cannot be changed. It associates your affiliate account with any users that you create.
AFFILIATE_SIGNATURE (Required) Your current White Label API affiliate signature is not yet assigned since your affiliate account is not set up to use the White Label API. You can change this at any time by clicking the "Regenerate Signature" button above. It represents the credentials for validating you as the owner of this affiliate account. This value is case-sensitive. Always keep this information stored in a secure location.
USERID (Required) The UserID for the new user account being created. You need to generate this UserID for any of your users that require access, and store these UserID's in your own database so that they can be used when logging in a user. All of your UserID's must be unique, since this is how you refer to a specific user with the White Label API. Note that once an account has been created, the UserID cannot be changed. Each UserID must be 5 to 50 characters in length and can only contain letters, numbers and underscore. UserID's are case-insensitive.
[NOTE: The USERID and PASSWORD used in the White Label API are completely independent of any UserID and Password you might require the user enter to allow them to login to their account. The White Label API USERID and PASSWORD are only used for accessing the user's account within our database, not yours. The user will never see the White Label API USERID and PASSWORD within any of our White Label services.]
PASSWORD (Required) The Password for the new user account being created. You need to generate this Password for any of your users that require access, and store these Passwords in your own database so that they can be used when logging in a user. Each Password must be 5 to 64 characters in length. Passwords are case-insensitive.
[NOTE: The USERID and PASSWORD used in the White Label API are completely independent of any UserID and Password you might require the user enter to allow them to login to their account. The White Label API USERID and PASSWORD are only used for accessing the user's account within our database, not yours. The user will never see the White Label API USERID and PASSWORD within any of our White Label services.]
FIRST_NAME (Required) The user's first name. Must be between 1 and 64 characters in length. Note that the combination of FIRST_NAME, LAST_NAME and EMAIL (ignoring case-sensitivity) must be unique within the LegalWills.co.za database. The user can make changes to this field themselves, within any legal document creation service. To prevent the same account from being used to create documents for multiple people, the FIRST_NAME and LAST_NAME can only be changed 2 times.
LAST_NAME (Required) The user's last name. Must be between 1 and 64 characters in length. Note that the combination of FIRST_NAME, LAST_NAME and EMAIL (ignoring case-sensitivity) must be unique within the LegalWills.co.za database. The user can make changes to this field themselves, within any legal document creation service. To prevent the same account from being used to create documents for multiple people, the FIRST_NAME and LAST_NAME can only be changed 2 times.
EMAIL (Required) The user's email address. Must be between 1 and 64 characters in length. Must contain both "@" (at) and "." (period), and must not contain "," (comma) ";" (semicolon) or " " (space). Note that the combination of FIRST_NAME, LAST_NAME and EMAIL (ignoring case-sensitivity) must be unique within the LegalWills.co.za database. The user can make changes to this field themselves, within any legal document creation service.
COUNTRY (Required) Name of the user's home Country. Maximum 64 characters. The only countries that are currently supported for creating valid legal documents are: Canada, United States, South Africa, United Kingdom - England, and United Kingdom - Wales, so these are the only values that will be accepted. These values are case-sensitive. This value is important to ensure that the legal documents created conform to the user's local jurisdiction, and also for determining the cost and currency of any enabled services. The user can make changes to this field themselves, within any legal document creation service.
ADDRESS_LINE1 (Optional) The user's home street address. Maximum 128 characters. The user can make changes to this field themselves, within any legal document creation service.
ADDRESS_LINE2 (Optional) Second line of the user's home street address, if required. Maximum 128 characters. The user can make changes to this field themselves, within any legal document creation service.
CITY (Optional) Name of the user's home city or town. Maximum 64 characters. The user can make changes to this field themselves, within any legal document creation service.
STATEPROV (Optional) Name of the user's home State, Province, or County. Maximum 64 characters. The only valid values that will be accepted are listed as the "Name" values in the states_all.xml file. These values are case-sensitive. This value is important to ensure that the legal documents created conform to the user's local jurisdiction. Note that the State of "Louisiana" will be accepted as a valid value, however it is not currently supported for creating legal documents. The user can make changes to this field themselves, within any legal document creation service.
POSTALCODE (Optional) The user's home Zip or Postal Code. Maximum 32 characters. The user can make changes to this field themselves, within any legal document creation service.
GENDER (Optional) The user's gender. Valid values are: M (Male), F (Female) and X (Gender neutral). These values are case-insensitive. The gender is required for the readability of the legal document creation services and for the construction of the final documents. Knowing the gender allows us to use the correct pronoun (i.e. "he" or "she" or "they", "his" or "her" or "their"). The user can make changes to this field themselves, within any legal document creation service.
MYWILL (Optional) Has the user paid you for the "MyWill" service (Last Will and Testament)? Valid values are: Y and N. The default is N. These values are case-insensitive.
  • Y indicates that the user has paid you for this service, so we will enable the service within their account.
  • N indicates that the user has not paid you for this service, so the user is only able to try out the service. The user can still create/modify their entire document, but they can only view/download the first page.
MYPOWEROFATTORNEY (Optional) Has the user paid you for the "MyPowerOfAttorney" service (Power of Attorney)? Valid values are: Y and N. The default is N. These values are case-insensitive.
  • Y indicates that the user has paid you for this service, so we will enable the service within their account.
  • N indicates that the user has not paid you for this service, so the user is only able to try out the service. The user can still create/modify their entire document, but they can only view/download the first page.
MYLIVINGWILL (Optional) Has the user paid you for the "MyLivingWill" service (Living Will / Power of Attorney for Health Care)? Valid values are: Y and N. The default is N. These values are case-insensitive.
  • Y indicates that the user has paid you for this service, so we will enable the service within their account.
  • N indicates that the user has not paid you for this service, so the user is only able to try out the service. The user can still create/modify their entire document, but they can only view/download the first page.
MYEXPATWILL_CANADA (Optional) Has the user paid you for the "MyExpatWill (Canada)" service (Expatriate Will for Assets Held in Canada)? Valid values are: Y and N. The default is N. These values are case-insensitive.
  • Y indicates that the user has paid you for this service, so we will enable the service within their account.
  • N indicates that the user has not paid you for this service, so the user is only able to try out the service. The user can still create/modify their entire document, but they can only view/download the first page.
MYEXPATWILL_QUEBEC (Optional) Has the user paid you for the "MyExpatWill (Québec)" service (Expatriate Will for Assets Held in Québec)? Valid values are: Y and N. The default is N. These values are case-insensitive.
  • Y indicates that the user has paid you for this service, so we will enable the service within their account.
  • N indicates that the user has not paid you for this service, so the user is only able to try out the service. The user can still create/modify their entire document, but they can only view/download the first page.
MYEXPATWILL_US (Optional) Has the user paid you for the "MyExpatWill (U.S.)" service (Expatriate Will for Assets Held in the United States)? Valid values are: Y and N. The default is N. These values are case-insensitive.
  • Y indicates that the user has paid you for this service, so we will enable the service within their account.
  • N indicates that the user has not paid you for this service, so the user is only able to try out the service. The user can still create/modify their entire document, but they can only view/download the first page.
MYEXPATWILL_UK (Optional) Has the user paid you for the "MyExpatWill (U.K.)" service (Expatriate Will for Assets Held in the United Kingdom - England or Wales)? Valid values are: Y and N. The default is N. These values are case-insensitive.
  • Y indicates that the user has paid you for this service, so we will enable the service within their account.
  • N indicates that the user has not paid you for this service, so the user is only able to try out the service. The user can still create/modify their entire document, but they can only view/download the first page.
MYLIFELOCKER (Optional) Has the user paid you for the "MyLifeLocker" service (Store personal information critical to be passed on to an Executor)? Valid values are: Y and N. The default is N. These values are case-insensitive.
  • Y indicates that the user has paid you for this service, so we will enable the service within their account.
  • N indicates that the user has not paid you for this service, so the user is only able to try out the service. The user can still create/modify their entire document, but they can only view/download the first page.
MYFUNERAL (Optional) Has the user paid you for the "MyFuneral" service (Document your funeral wishes and organ donation preferences)? Valid values are: Y and N. The default is N. These values are case-insensitive.
  • Y indicates that the user has paid you for this service, so we will enable the service within their account.
  • N indicates that the user has not paid you for this service, so the user is only able to try out the service. The user can still create/modify their entire document, but they can only view/download the first page.
MEM_YEARS (Optional) The number of years that this user has paid to be able to access all of their legal document creation services. This value is independent of what actual services have been paid for, if any. Valid values are integers:
  • 1, 5, 10, or 25 = Number of years before the given user's membership expires, as calculated from their membership start date (the day their membership was created, or the day that they paid for their first service, whichever is later).
  • -1 = Lifetime membership (never expires).
If this name-value pair is omitted, then the default is 1 year. (Note that a user with an expired membership will still be able to access all of their services. The only impact is that if they previously paid for a service, they will only be able to view the first page of the document. They will need to add 1 or more MEM_YEARS before they can resume viewing/downloading the entire document.)
TEST_USER (Optional) Is this user account being created for development testing purposes only? Valid values are: Y and N. These values are case-insensitive. If this name-value pair is omitted, then the default is N. A test user works the same as a live user, except that you will not be liable for payment for enabling services in a test user account. Test users can be modified and deleted by you in the User Database section, below.
Field Description
CMD (Required) The command being sent to the White Label API. In this case, the value must be set to modify_user. This value is case-insensitive. This command indicates that you want to modify an existing account in the LegalWills.co.za database. No user interface will be presented. Only a single Result Code will be returned.
AFFILIATE_ID (Required) Your unique White Label API affiliate ID number is not yet assigned since your affiliate account is not set up to use the White Label API. This number cannot be changed. It associates your affiliate account with any users that you create.
AFFILIATE_SIGNATURE (Required) Your current White Label API affiliate signature is not yet assigned since your affiliate account is not set up to use the White Label API. You can change this at any time by clicking the "Regenerate Signature" button above. It represents the credentials for validating you as the owner of this affiliate account. This value is case-sensitive. Always keep this information stored in a secure location.
USERID (Required) The UserID for the user account you wish to modify. The UserID cannot be changed.
PASSWORD (Optional) The new Password for this user account. Keep in mind that you need to maintain this Password in your own database so that it can be used when logging in this user. Each Password must be 5 to 64 characters in length. Passwords are case-insensitive. The user will never see this Password within any of our White Label services. If this name-value pair is omitted, then the Password will not be changed.
FIRST_NAME (Optional) The new value for this user's first name. Must be between 1 and 64 characters in length. Note that the combination of FIRST_NAME, LAST_NAME and EMAIL (ignoring case-sensitivity) must be unique within the LegalWills.co.za database. The user can make changes to this field themselves, within any legal document creation service. To prevent the same account from being used to create documents for multiple people, the FIRST_NAME and LAST_NAME can only be changed 2 times. If this name-value pair is omitted, then the first name will not be changed.
LAST_NAME (Optional) The new value for this user's last name. Must be between 1 and 64 characters in length. Note that the combination of FIRST_NAME, LAST_NAME and EMAIL (ignoring case-sensitivity) must be unique within the LegalWills.co.za database. The user can make changes to this field themselves, within any legal document creation service. To prevent the same account from being used to create documents for multiple people, the FIRST_NAME and LAST_NAME can only be changed 2 times. If this name-value pair is omitted, then the last name will not be changed.
EMAIL (Optional) The new value for this user's email address. Must be between 1 and 64 characters in length. Must contain both "@" (at) and "." (period), and must not contain "," (comma) ";" (semicolon) or " " (space). Note that the combination of FIRST_NAME, LAST_NAME and EMAIL (ignoring case-sensitivity) must be unique within the LegalWills.co.za database. The user can make changes to this field themselves, within any legal document creation service. If this name-value pair is omitted, then the email address will not be changed.
COUNTRY (Optional) The new value for the name of this user's home Country. Maximum 64 characters. The only countries that are currently supported for creating valid legal documents are: Canada, United States, South Africa, United Kingdom - England, and United Kingdom - Wales, so these are the only values that will be accepted. These values are case-sensitive. This value is important to ensure that the legal documents created conform to the user's local jurisdiction, and also for determining the cost and currency of any enabled services. The user can make changes to this field themselves, within any legal document creation service. If this name-value pair is omitted, then the Country will not be changed.
ADDRESS_LINE1 (Optional) The new value for this user's home street address. Maximum 128 characters. The user can make changes to this field themselves, within any legal document creation service. If this name-value pair is omitted, then the street address (line 1) will not be changed.
ADDRESS_LINE2 (Optional) The new value for the second line of this user's home street address, if required. Maximum 128 characters. The user can make changes to this field themselves, within any legal document creation service. If this name-value pair is omitted, then the street address (line 2) will not be changed.
CITY (Optional) The new value for the name of this user's home city or town. Maximum 64 characters. The user can make changes to this field themselves, within any legal document creation service. If this name-value pair is omitted, then the city/town will not be changed.
STATEPROV (Optional) The new value for the name of this user's home State, Province, or County. Maximum 64 characters. The only valid values that will be accepted are listed as the "Name" values in the states_all.xml file. These values are case-sensitive. This value is important to ensure that the legal documents created conform to the user's local jurisdiction. Note that the State of "Louisiana" will be accepted as a valid value, however it is not currently supported for creating legal documents. The user can make changes to this field themselves, within any legal document creation service. If this name-value pair is omitted, then the State/Province/County will not be changed.
POSTALCODE (Optional) The new value for this user's home Zip or Postal Code. Maximum 32 characters. The user can make changes to this field themselves, within any legal document creation service. If this name-value pair is omitted, then the Zip/Postal Code will not be changed.
GENDER (Optional) The new value for this user's gender. Valid values are: M (Male), F (Female) and X (Gender neutral). These values are case-insensitive. The gender is required for the readability of the legal document creation services and for the construction of the final documents. Knowing the gender allows us to use the correct pronoun (i.e. "he" or "she" or "they", "his" or "her" or "their"). The user can make changes to this field themselves, within any legal document creation service. If this name-value pair is omitted, then the gender will not be changed.
MYWILL (Optional) Has the user paid you for the "MyWill" service (Last Will and Testament)? Valid values are: Y and N. These values are case-insensitive.
  • Y lets us know that the user has paid you for this service, so we will enable the service within their account, if it isn't already enabled.
  • N lets us know that either (a) the user is still only able to try out the service, or (b) a previous payment has been refunded. In either case, we will make sure that the service is disabled within their account. The user can still create/modify their entire document, but they can only view/download the first page.
If this name-value pair is omitted, then the value we have stored in our database will not be changed.
MYPOWEROFATTORNEY (Optional) Has the user paid you for the "MyPowerOfAttorney" service (Power of Attorney)? Valid values are: Y and N. These values are case-insensitive.
  • Y lets us know that the user has paid you for this service, so we will enable the service within their account, if it isn't already enabled.
  • N lets us know that either (a) the user is still only able to try out the service, or (b) a previous payment has been refunded. In either case, we will make sure that the service is disabled within their account. The user can still create/modify their entire document, but they can only view/download the first page.
If this name-value pair is omitted, then the value we have stored in our database will not be changed.
MYLIVINGWILL (Optional) Has the user paid you for the "MyLivingWill" service (Living Will / Power of Attorney for Health Care)? Valid values are: Y and N. These values are case-insensitive.
  • Y lets us know that the user has paid you for this service, so we will enable the service within their account, if it isn't already enabled.
  • N lets us know that either (a) the user is still only able to try out the service, or (b) a previous payment has been refunded. In either case, we will make sure that the service is disabled within their account. The user can still create/modify their entire document, but they can only view/download the first page.
If this name-value pair is omitted, then the value we have stored in our database will not be changed.
MYEXPATWILL_CANADA (Optional) Has the user paid you for the "MyExpatWill (Canada)" service (Expatriate Will for Assets Held in Canada)? Valid values are: Y and N. These values are case-insensitive.
  • Y lets us know that the user has paid you for this service, so we will enable the service within their account, if it isn't already enabled.
  • N lets us know that either (a) the user is still only able to try out the service, or (b) a previous payment has been refunded. In either case, we will make sure that the service is disabled within their account. The user can still create/modify their entire document, but they can only view/download the first page.
If this name-value pair is omitted, then the value we have stored in our database will not be changed.
MYEXPATWILL_QUEBEC (Optional) Has the user paid you for the "MyExpatWill (Québec)" service (Expatriate Will for Assets Held in Québec)? Valid values are: Y and N. These values are case-insensitive.
  • Y lets us know that the user has paid you for this service, so we will enable the service within their account, if it isn't already enabled.
  • N lets us know that either (a) the user is still only able to try out the service, or (b) a previous payment has been refunded. In either case, we will make sure that the service is disabled within their account. The user can still create/modify their entire document, but they can only view/download the first page.
If this name-value pair is omitted, then the value we have stored in our database will not be changed.
MYEXPATWILL_US (Optional) Has the user paid you for the "MyExpatWill (U.S.)" service (Expatriate Will for Assets Held in the United States)? Valid values are: Y and N. These values are case-insensitive.
  • Y lets us know that the user has paid you for this service, so we will enable the service within their account, if it isn't already enabled.
  • N lets us know that either (a) the user is still only able to try out the service, or (b) a previous payment has been refunded. In either case, we will make sure that the service is disabled within their account. The user can still create/modify their entire document, but they can only view/download the first page.
If this name-value pair is omitted, then the value we have stored in our database will not be changed.
MYEXPATWILL_UK (Optional) Has the user paid you for the "MyExpatWill (U.K.)" service (Expatriate Will for Assets Held in the United Kingdom - England or Wales)? Valid values are: Y and N. These values are case-insensitive.
  • Y lets us know that the user has paid you for this service, so we will enable the service within their account, if it isn't already enabled.
  • N lets us know that either (a) the user is still only able to try out the service, or (b) a previous payment has been refunded. In either case, we will make sure that the service is disabled within their account. The user can still create/modify their entire document, but they can only view/download the first page.
If this name-value pair is omitted, then the value we have stored in our database will not be changed.
MYLIFELOCKER (Optional) Has the user paid you for the "MyLifeLocker" service (Store personal information critical to be passed on to an Executor)? Valid values are: Y and N. These values are case-insensitive.
  • Y lets us know that the user has paid you for this service, so we will enable the service within their account, if it isn't already enabled.
  • N lets us know that either (a) the user is still only able to try out the service, or (b) a previous payment has been refunded. In either case, we will make sure that the service is disabled within their account. The user can still create/modify their entire document, but they can only view/download the first page.
If this name-value pair is omitted, then the value we have stored in our database will not be changed.
MYFUNERAL (Optional) Has the user paid you for the "MyFuneral" service (Document your funeral wishes and organ donation preferences)? Valid values are: Y and N. These values are case-insensitive.
  • Y lets us know that the user has paid you for this service, so we will enable the service within their account, if it isn't already enabled.
  • N lets us know that either (a) the user is still only able to try out the service, or (b) a previous payment has been refunded. In either case, we will make sure that the service is disabled within their account. The user can still create/modify their entire document, but they can only view/download the first page.
If this name-value pair is omitted, then the value we have stored in our database will not be changed.
MEM_YEARS (Optional) The number of years to be ADDED or REMOVED from this user's membership account. Whether years are ADDED or REMOVED is specified by the MEM_YEARS_OP field. Note that a user's membership length is independent of what actual services have been paid for, if any. Valid values are integers:
  • 1, 5, 10, or 25 = Number of years to be ADDED or REMOVED from the given user's membership account.
  • -1 = ADD or REMOVE a Lifetime membership for the given user (which never expires).
If this name-value pair is omitted, then the value we have stored in our database will not be changed. (Note that a user with an expired membership will still be able to access all of their services. The only impact is that if they previously paid for a service, they will only be able to view the first page of the document. They will need to add 1 or more MEM_YEARS before they can resume viewing/downloading the entire document.)
MEM_YEARS_OP (Optional) Specifies whether the value in the MEM_YEARS field should be ADDED or REMOVED from the given user's membership account. Valid values are: add and remove. These values are case-insensitive.
  • add indicates that MEM_YEARS years should be ADDED to the user's current membership length. If MEM_YEARS=-1, then their membership length will be set to -1 (Lifetime membership).
  • remove indicates that MEM_YEARS years should be REMOVED from the user's current membership length. If MEM_YEARS=-1, then their membership length will be set to 1 year.
If this name-value pair is omitted, then the default is add. If the operation will result in the user having less than a 1-year membership, then their membership length will be reset to 1 year.
Field Description
CMD (Required) The command being sent to the White Label API. In this case, the value must be set to query_if_expired. This value is case-insensitive. This command indicates that you want to check if the user with the given USERID has a membership account which has expired. This command will return the Result Code "MEM_EXPIRED" if the membership has expired, or "OK" if the membership has not expired. (Note that a user with an expired membership will still be able to access all of their services. The only impact is that if they previously paid for a service, they will only be able to view the first page of the document. They will need to extend their membership MEM_YEARS before they can resume viewing/downloading the entire document.)
AFFILIATE_ID (Required) Your unique White Label API affiliate ID number is not yet assigned since your affiliate account is not set up to use the White Label API. This number cannot be changed. It associates your affiliate account with any users that you create.
AFFILIATE_SIGNATURE (Required) Your current White Label API affiliate signature is not yet assigned since your affiliate account is not set up to use the White Label API. You can change this at any time by clicking the "Regenerate Signature" button above. It represents the credentials for validating you as the owner of this affiliate account. This value is case-sensitive. Always keep this information stored in a secure location.
USERID (Required) The UserID for the user account that you want to query. This UserID must already exist in our database, by previously sending a create_user API command.

Instead of a single Result Code, the query_mywill API command returns a JSON object in the following format:


{
    "ResultCode": "OK",
    "UserID": "janedoe",
    "MyWillEnabled": true,
    "MyWillStarted": true,
    "MyWillComplete": false,
    "MyWillNumDownloads": 2,
    "MyWillLastUpdated": "2022-03-16T09:30:28",
    "MyWillFirstDownloaded": "2022-03-17T14:21:04",
    "MyWillLastDownloaded": "2022-03-17T23:15:55"
}

ResultCode (string) - The returned ResultCode could be any of the codes in the "Result Codes" table below. "OK" indicates no errors.
UserID (string) - The USERID that was provided for this CMD.
MyWillEnabled (boolean) - Whether or not the MyWill service has been enabled for the given USERID.
MyWillStarted (boolean) - Whether or not this user has started to create a MyWill document. If they delete the document this goes back to 'false'.
MyWillComplete (boolean) - Whether or not all of the required questions have been answered for this user's MyWill document.
MyWillNumDownloads (integer) - Number of times the user has downloaded their MyWill document.
MyWillLastUpdated (datetime) - Date and time that the current MyWill document was last updated by the user, in Central Standard Time zone.
MyWillFirstDownloaded (datetime) - Date and time that the MyWill document was first downloaded by the user, in Central Standard Time zone.
MyWillLastDownloaded (datetime) - Date and time that the MyWill document was last downloaded by the user, in Central Standard Time zone.
Field Description
CMD (Required) The command being sent to the White Label API. In this case, the value must be set to query_mywill. This value is case-insensitive. This command indicates that you want to retrieve the status of the MyWill document for the user with the given USERID.
AFFILIATE_ID (Required) Your unique White Label API affiliate ID number is not yet assigned since your affiliate account is not set up to use the White Label API. This number cannot be changed. It associates your affiliate account with any users that you create.
AFFILIATE_SIGNATURE (Required) Your current White Label API affiliate signature is not yet assigned since your affiliate account is not set up to use the White Label API. You can change this at any time by clicking the "Regenerate Signature" button above. It represents the credentials for validating you as the owner of this affiliate account. This value is case-sensitive. Always keep this information stored in a secure location.
USERID (Required) The UserID for the user account that you want to query. This UserID must already exist in our database, by previously sending a create_user API command.

The encrypt API command does not return a Result Code. It returns the encrypted string. If an error occurred, then an empty string is returned. Note that the encrypted value must be used right away, since it expires and becomes invalid within 60 seconds.

Field Description
CMD (Required) The command being sent to the White Label API. In this case, the value must be set to encrypt. This value is case-insensitive. This command indicates that you want to encrypt the given string. This command returns the encrypted string, instead of a Result Code. If there was an error (e.g. an invalid AFFILIATE_ID or AFFILIATE_SIGNATURE was provided) then an empty string is returned.
AFFILIATE_ID (Required) Your unique White Label API affiliate ID number is not yet assigned since your affiliate account is not set up to use the White Label API. This number cannot be changed. It associates your affiliate account with any users that you create.
AFFILIATE_SIGNATURE (Required) Your current White Label API affiliate signature is not yet assigned since your affiliate account is not set up to use the White Label API. You can change this at any time by clicking the "Regenerate Signature" button above. It represents the credentials for validating you as the owner of this affiliate account. This value is case-sensitive. Always keep this information stored in a secure location.
STR (Required) The string you wish to encrypt. The encrypted string is returned by this API command instead of a Result Code.

When sending a user to the White Label API URL with a login API command, if there is an error with any of the values given, then the error will be displayed on the page instead of granting access to the given user. It is recommended that you send a validate_login API command first, to verify that there are no errors, before sending the user to the White Label API URL with a login command. This allows you to deal with any potential errors within your own code, instead of having the user see an error message on our website.

Field Description
CMD (Required) The command being sent to the White Label API. In this case, the value must be set to validate_login. This value is case-insensitive. This command indicates that you just want to check if the given name-value pairs will result in an error if you send a login command. No database changes will occur, and no user interface will be presented. Only a single Result Code will be returned.
AFFILIATE_ID (Required) Your unique White Label API affiliate ID number is not yet assigned since your affiliate account is not set up to use the White Label API. This number cannot be changed. It associates your affiliate account with any users that you create.
USERID (Required) The UserID for the user wanting to access the specified legal document creation service. This UserID must already exist in our database, by previously sending a create_user API command. This value must be encrypted using the encrypt API command.
PASSWORD (Required) The Password for the user wanting to access the specified legal document creation service. This Password will be used along with the supplied USERID to verify if the given USERID and PASSWORD combination is correct. This value must be encrypted using the encrypt API command.
SERVICE_NAME (Required) The specific legal document creation service that the user wants to access in this session. Valid values are (case-insensitive):
  • mywill - Last Will and Testament
  • mypowerofattorney - Power of Attorney
  • mylivingwill - Living Will (Power of Attorney for Health Care)
  • myexpatwill_canada - Expatriate Will for Assets Held in Canada
  • myexpatwill_quebec - Expatriate Will for Assets Held in Québec
  • myexpatwill_us - Expatriate Will for Assets Held in the United States
  • myexpatwill_uk - Expatriate Will for Assets Held in the United Kingdom (England or Wales)
  • mylifelocker - Store personal information critical to be passed on to an Executor
  • myfuneral - Document Funeral Wishes and Organ Donation Preferences

When sending a user to the White Label API URL with a login API command, if there is an error with any of the values given, then the error will be displayed on the page instead of granting access to the given user. It is recommended that you send a validate_login API command first, to verify that there are no errors, before sending the user to the White Label API URL with a login command. This allows you to deal with any potential errors within your own code, instead of having the user see an error message on our website.

The login API command does not return a Result Code. It displays a User Interface for the selected legal document creation service.

Field Description
CMD (Required) The command being sent to the White Label API. In this case, the value must be set to login. This value is case-insensitive. This command indicates that you want to log in the given user and present them with the specified legal document creation service.
AFFILIATE_ID (Required) Your unique White Label API affiliate ID number is not yet assigned since your affiliate account is not set up to use the White Label API. This number cannot be changed. It associates your affiliate account with any users that you create.
USERID (Required) The UserID for the user wanting to access the specified legal document creation service. This UserID must already exist in our database, by previously sending a create_user API command. This UserID will be used along with the supplied PASSWORD to log them in. This value must be encrypted using the encrypt API command.
PASSWORD (Required) The Password for the user wanting to access the specified legal document creation service. This Password will be used along with the supplied USERID to log them in. This value must be encrypted using the encrypt API command.
SERVICE_NAME (Required) The specific legal document creation service that the user wants to access in this session. Valid values are (case-insensitive):
  • mywill - Last Will and Testament
  • mypowerofattorney - Power of Attorney
  • mylivingwill - Living Will (Power of Attorney for Health Care)
  • myexpatwill_canada - Expatriate Will for Assets Held in Canada
  • myexpatwill_quebec - Expatriate Will for Assets Held in Québec
  • myexpatwill_us - Expatriate Will for Assets Held in the United States
  • myexpatwill_uk - Expatriate Will for Assets Held in the United Kingdom (England or Wales)
  • mylifelocker - Store personal information critical to be passed on to an Executor
  • myfuneral - Document Funeral Wishes and Organ Donation Preferences

The logout API command should be sent to the same window (e.g. iframe) as was used for the login API command.

Field Description
CMD (Required) The command being sent to the White Label API. In this case, the value must be set to logout. This value is case-insensitive. This command indicates that you want to logout the current user. If this user needs to re-access a legal document creation service, then the login command must be sent again. If nobody is currently logged in, then the "OK" Result Code is still returned.
AFFILIATE_ID (Required) Your unique White Label API affiliate ID number is not yet assigned since your affiliate account is not set up to use the White Label API. This number cannot be changed. It associates your affiliate account with any users that you create.

Result Codes

The following list shows the possible Result Codes that can be returned by the White Label API.

Result Code Description
OK No errors. The command was successful.
BAD_ADDRESS_LINE1 The given ADDRESS_LINE1 value was longer than 128 characters in length.
BAD_ADDRESS_LINE2 The given ADDRESS_LINE2 value was longer than 128 characters in length.
BAD_CITY The given CITY value was longer than 64 characters in length.
BAD_COUNTRY The given COUNTRY value was longer than 64 characters in length.
BAD_EMAIL The given EMAIL value was not between 1 and 64 characters in length.
BAD_FIRST_NAME The given FIRST_NAME value was not between 1 and 64 characters in length.
BAD_LAST_NAME The given LAST_NAME value was not between 1 and 64 characters in length.
BAD_PASSWORD The given PASSWORD value was not between 5 and 64 characters in length. Also, when using the login or validate_login commands, make sure the PASSWORD value is not sent in plain text. It must be encrypted using the encrypt API command.
BAD_POSTALCODE The given POSTALCODE value was longer than 32 characters in length.
BAD_PREFIX The given PREFIX value was not between 1 and 5 characters in length, or does not contain only letters, numbers, hyphen and underscore characters.
BAD_STATEPROV The given STATEPROV value was longer than 64 characters in length.
BAD_USERID The given USERID value was not between 5 and 50 characters in length, or does not contain only letters, numbers and underscore characters. Also, when using the login, validate_login, or logout commands, make sure the USERID value is not sent in plain text. It must be encrypted using the encrypt API command.
BANNED_IP Login was attempted from a banned IP address. An IP address might be banned by the administrators of LegalWills.co.za for security reasons. Please send an email to [email protected] if you believe this to be in error.
BANNED_USERID Login was attempted by a banned USERID. A UserID might be banned by the administrators of LegalWills.co.za for security reasons. Please send an email to [email protected] if you believe this to be in error.
DECRYPTION_FAILURE The decryption of an encrypted field failed. It might not have been encrypted properly using the encrypt command.
DUPLICATE_USER The given combination of FIRST_NAME, LAST_NAME and EMAIL already exists in the database, under a different USERID. This combination must be unique for all users. If this was a create_user command, then a new account could not be created. If this was a modify_user command, then the existing account was not modified.
ENCRYPTION_EXPIRED An encrypted field could not be decrypted because it had expired. For security reasons, the results of the encrypt command can only be used for a limited time.
EXISTING_USERID The given USERID already exists in our database. A new account could not be created.
INVALID_CMD An invalid value was provided for CMD. Valid values are listed in the above API Reference.
INVALID_COUNTRY An invalid value was provided for COUNTRY. Valid values are listed in the above API Reference.
INVALID_CREDENTIALS The given AFFILIATE_ID and AFFILIATE_SIGNATURE combination was not valid, or one of these required name-value pairs was missing. Valid values for your account are provided at the very top of this page.
INVALID_EMAIL An invalid value was provided for EMAIL. To be considered a valid email address, it must satisfy the constraints outlined in the above API Reference.
INVALID_GENDER An invalid value was provided for GENDER. Valid values are listed in the above API Reference.
INVALID_LOGIN The given USERID and PASSWORD combination was not valid. No such account exists. Also, when using the login or validate_login commands, make sure the USERID and PASSWORD values are not sent in plain text. They must be encrypted using the encrypt API command.
INVALID_MEM_YEARS An invalid value was provided for MEM_YEARS. Valid values are listed in the above API Reference.
INVALID_MEM_YEARS_OP An invalid value was provided for MEM_YEARS_OP. Valid values are listed in the above API Reference.
INVALID_MYEXPATWILL_CANADA An invalid value was provided for MYEXPATWILL_CANADA. Valid values are listed in the above API Reference.
INVALID_MYEXPATWILL_QUEBEC An invalid value was provided for MYEXPATWILL_QUEBEC. Valid values are listed in the above API Reference.
INVALID_MYEXPATWILL_UK An invalid value was provided for MYEXPATWILL_UK. Valid values are listed in the above API Reference.
INVALID_MYEXPATWILL_US An invalid value was provided for MYEXPATWILL_US. Valid values are listed in the above API Reference.
INVALID_MYFUNERAL An invalid value was provided for MYFUNERAL. Valid values are listed in the above API Reference.
INVALID_MYLIFELOCKER An invalid value was provided for MYLIFELOCKER. Valid values are listed in the above API Reference.
INVALID_MYLIVINGWILL An invalid value was provided for MYLIVINGWILL. Valid values are listed in the above API Reference.
INVALID_MYPOWEROFATTORNEY An invalid value was provided for MYPOWEROFATTORNEY. Valid values are listed in the above API Reference.
INVALID_MYWILL An invalid value was provided for MYWILL. Valid values are listed in the above API Reference.
INVALID_PREFIX An invalid value was provided for PREFIX. Either you are not permitted to use this API command, or the given value does not match any of your assigned prefixes.
INVALID_SERVICE_NAME An invalid value was provided for SERVICE_NAME. Valid values are listed in the above API Reference.
INVALID_STATEPROV An invalid value was provided for STATEPROV. Valid values are listed in the above API Reference.
INVALID_TEST_USER An invalid value was provided for TEST_USER. Valid values are listed in the above API Reference.
IS_LIFETIME The given user currently has a Lifetime membership, so the operation could not be performed.
IS_NOT_LIFETIME The given user does not have a Lifetime membership, so the operation could not be performed.
MEM_EXPIRED The membership for the given USERID has expired. A user with an expired membership will still be able to access all of their services. The only impact is that if they previously paid for a service, they will only be able to view the first page of the document. They will need to extend their membership MEM_YEARS before they can resume viewing/downloading the entire document.
MISSING_COUNTRY No COUNTRY value was provided. This name-value pair is required for the given CMD.
MISSING_EMAIL No EMAIL value was provided. This name-value pair is required for the given CMD.
MISSING_FIRST_NAME No FIRST_NAME value was provided. This name-value pair is required for the given CMD.
MISSING_LAST_NAME No LAST_NAME value was provided. This name-value pair is required for the given CMD.
MISSING_PASSWORD No PASSWORD value was provided. This name-value pair is required for the given CMD.
MISSING_PREFIX No PREFIX value was provided. This name-value pair is required for the given CMD.
MISSING_SERVICE_NAME No SERVICE_NAME value was provided. This name-value pair is required for the given CMD.
MISSING_USERID No USERID value was provided. This name-value pair is required for the given CMD.
NO_SUCH_USERID The given USERID does not exist in our database. Also, when using the login, validate_login, or logout commands, make sure the USERID value is not sent in plain text. It must be encrypted using the encrypt API command.
SUSPENDED_USERID Login was attempted by a suspended USERID. A UserID might be suspended by the administrators of LegalWills.co.za for security or billing reasons. Please send an email to [email protected] if you believe this to be in error.
TOO_FEW_YEARS The operation would result in the given user having a membership length of less than 1 year. Operation aborted.
TOO_MANY_YEARS The operation would result in the given user having a membership length of more than 999 years. Operation aborted.

As seen in
CTV
Toronto Star
Global News
CBC
Globe and Mail
MSN
Huffington Post
CHCH TV