Integration guide
v1.3.1

Introduction #

What is Toosign.com API? #

The Toosign.com API is a REST interface to enable the creation and management of signature workflows.

The Toosign.com API is composed of two services:

Each service has its own API URL.

Both APIs accept JSON content in requests, and return JSON content in their responses, except when uploading or downloading document data.

The HTTP methods (GET, POST, PUT, PATCH, DELETE) determine the operation type on the resource. The resource is identified by the URL, which is targeted by the method.

Key concepts #

  • Workflows: Represents the object that you send to one or more recipients to approve or to sign. A workflow can have one or many documents, one or many approvers, and one or many signers. Workflows can have different statuses, according to their state of completion.

  • Documents: PDF files that can be added to workflows, for approval and/or signature.

  • Signers: The individuals you are asking to sign the documents of a workflow.

  • Approvers: Any person who needs to approve the documents of a workflow before it can be signed. It can be, for example, a manager or a member of the legal department.

  • Invitation mode: The way a signer or an approver is invited to sign or approve a workflow. It can be:

    • inviteByEmail: the signer/approver receives a link by email on his/her email address.
    • inviteByPhone: the signer/approver receives a link by text received on his/her mobile phone.
    • inviteByWhatsapp: the signer/approver receives a link by Whatsapp on his/her mobile phone.
    • noInvitation: the invitation is not sent by the platform. It’s up to the client application to generate the link via the API and to redirect the signer/approver to the approbation/signature page.
  • Authentication mode: The way a signer is authenticated before signing a workflow. It can be:

    • authenticateWithEmail: the signer is authenticated with a one-time password sent by email to his/her email address.
    • authenticateWithPhone: the signer is authenticated with a one-time password sent by text to his/her mobile phone.
    • authenticateWithWhatsapp: the signer is authenticated with a one-time password sent by Whatsapp to his/her mobile phone.
    • authenticateWithIdp: the signer is authenticated by an external identity provider.
    • noAuthentication: the signer is automatically authenticated as soon as he/she opens the invitation link.

How to #

Launch a workflow #

To launch a workflow, you will need to follow these 3 steps:

  1. Create the workflow
  2. Upload the documents
  3. Start the workflow

Step 1: create the workflow #

First, you will create a new workflow in the Trusted Service API by specifying the approvers and the signers, and by passing an API token in the Authorization header:

$ curl 'https://dev.toosign.com/api/workflows' -i -X POST \
    -H 'Authorization: Bearer eyJhdCI6ImF0TjVoaTN6RXNKa29kIn0.708LNsJgDeBwLFVgVfu9wpPC6goveJHJmw3uxjydsso' \
    -H 'Content-Type: application/json' \
    -d '{
  "space" : "spXg4xDPTgfaie",
  "emailNotifications" : {
    "lupe.mraz25281@acme.com" : {
      "notificationTypes" : [ "workflowFinished" ],
      "locale" : "fr_FR"
    }
  },
  "shortName" : "Multi-layered regional secured line #64382",
  "approvers" : [ {
    "firstName" : "Jesse",
    "lastName" : "Mertz",
    "email" : "marc.lueilwitz62412@acme.com",
    "phone" : "+11148460126",
    "locale" : "fr_FR",
    "invitationMode" : "inviteByPhone",
    "sendDownloadLinkOnFinished" : true
  } ],
  "signers" : [ {
    "firstName" : "Janette",
    "lastName" : "Hauck",
    "email" : "carey.bednar31827@acme.com",
    "phone" : "+11167588790",
    "locale" : "fr_FR",
    "invitationMode" : "inviteByPhone",
    "authenticationMode" : "authenticateWithPhone",
    "forceViewDocuments" : true,
    "sendDownloadLinkOnFinished" : true
  } ],
  "sendAutomatedInvitations" : true,
  "duplicateDocumentsFromWorkflow" : "wf0WhsKYcjfsxa"
}'

You will find the ID of the created workflow in the HTTP response body:

HTTP/1.1 200 OK
X-Audit-Log: alXsJiYLv9WkUT
ETag: "lzEH3XPKeQIe"
Cache-Control: must-revalidate
Content-Type: application/json
Content-Length: 1143

{
  "approvers" : [ {
    "firstName" : "Jesse",
    "id" : "apF3kF9ZTtmDbJ",
    "invitationMode" : "inviteByPhone",
    "lastName" : "Mertz",
    "locale" : "fr-FR",
    "phone" : "+1 1148460126",
    "sendDownloadLinkOnFinished" : true
  } ],
  "automatedInvitationReminderPeriod" : 172800000,
  "createdByApiToken" : "atN5hi3zEsJkod",
  "createdOn" : 1718862298273,
  "emailNotifications" : {
    "lupe.mraz25281@acme.com" : {
      "locale" : "fr-FR",
      "notificationTypes" : [ "workflowFinished" ]
    }
  },
  "id" : "wf2j1LW4RZIGmV",
  "maxAutomatedInvitationReminders" : 2,
  "organization" : "og4hooJWKGw1L1",
  "sendAutomatedInvitations" : true,
  "shortName" : "Multi-layered regional secured line #64382",
  "signers" : [ {
    "authenticationMode" : "authenticateWithPhone",
    "firstName" : "Janette",
    "forceViewDocuments" : true,
    "id" : "si5M3AXpu0pNxL",
    "invitationMode" : "inviteByPhone",
    "lastName" : "Hauck",
    "locale" : "fr-FR",
    "phone" : "+1 1167588790",
    "sendDownloadLinkOnFinished" : true
  } ],
  "space" : "spXg4xDPTgfaie",
  "updatedOn" : 1718862298273,
  "workflowStatus" : "draft"
}

Step 2: upload the documents #

To upload documents in the created workflow, you will first create a document token for this workflow in the Trusted Service API by passing an API token in the Authorization header:

$ curl 'https://dev.toosign.com/api/workflows/wf0WhsKYcjfsxa/documentTokens' -i -X POST \
    -H 'Authorization: Bearer eyJhdCI6ImF0TjVoaTN6RXNKa29kIn0.708LNsJgDeBwLFVgVfu9wpPC6goveJHJmw3uxjydsso' \
    -H 'Content-Type: application/json' \
    -d '{
  "readWrite" : true
}'

The token value will be included in the HTTP response body:

HTTP/1.1 200 OK
X-Audit-Log: alQyJ3DIxLMBUx
Cache-Control: no-cache
Content-Type: application/json
Content-Length: 332

{
  "createdOn" : 1718862245480,
  "expiredOn" : 1718862845480,
  "readWrite" : true,
  "tokenValue" : "eyJhdCI6ImF0TjVoaTN6RXNKa29kIiwicnciOnRydWUsImlwIjoiMTI3LjAuMC4xIiwib2ciOiJvZzRob29KV0tHdzFMMSIsImV4cCI6MTcxODg2Mjg0NSwid2YiOiJ3ZjBXaHNLWWNqZnN4YSJ9.rH3DZYAx3xLqPf219MBNxaF6NZeAzhGu8R7aq8bo9iU",
  "workflow" : "wf0WhsKYcjfsxa"
}

You will then use the token value to upload the document content as a chunk in the Document Service API:

$ curl 'https://dev-document.toosign.com/api/chunks' -i -X POST \
    -H 'Authorization: Bearer eyJvZyI6Im9nTWZ0SWc1ZW9rdEJWIiwiZXhwIjoxNzE4ODYyOTQxLCJydyI6dHJ1ZSwidXMiOiJ1c1VFc2V5djZBTWxURiIsIndmIjoid2ZTOHYwTVlzaHl0cVUifQ.FV7dgXjwDZ1dHdmpglCbnd3g3xtDiToJ5tdtrEOkxvA' \
    -H 'Content-Type: application/pdf' \
    -d '%PDF-1.4
%����
1 0 obj
<</Title (Untitled document)
/Producer (Skia/PDF m111 Google Docs Renderer)>>
endobj
3 0 obj
<</ca 1
/BM /Normal>>
endobj
5 0 obj
<</Filter /FlateDecode
/Length 163>> stream
x�]��
�0��y���Y�6M
�AН���������`������#?at57\�f��<�Tf�;������L#t}���'d'	�p�sPߪz|.��cD��Z(�x���fc
��ȫ���Ή��!�S�*ZomF,�N�$�@)xc/��8J��
?65�
endstream
endobj
2 0 obj
<</Type /Page
/Resources <</ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
/ExtGState <</G3 3 0 R>>
/Font <</F4 4 0 R>>>>
/MediaBox [0 0 612 792]
/Contents 5 0 R
/StructParents 0
/Parent 6 0 R>>
endobj
6 0 obj
<</Type /Pages
/Count 1
/Kids [2 0 R]>>
endobj
7 0 obj
<</Type /Catalog
/Pages 6 0 R>>
endobj
8 0 obj
<</Length1 16564
/Filter /FlateDecode
/Length 7690>> stream
x��TT���{�3�������AQP�A0��"�`�a�J�i��i���j)Y���u�w�txh�=�fu�2��޾+�fZ�����w�Ln�_w��]��Z���{��~�����ud�3��t(m����(M6z�8�N&��6�����a��3j\V���D|���KFT�^;�[�,�(��)�j��fD�p��M�ߨ�k{�Dz��/��~ڬ�z6��5�_9�����(�{˴�/?z�m`����M���铧���D�Mu�5SE�����P����� �Z7�q��q�$�!ʪgΞRc�0]�c�o�U��^��E]%�ʕ5�jc��~D$a���~vC��A�/��sk�����N�&
}��ޙ�[\�S$1U�.�*�kʣ���ʢ���h�C^�ڐ�.���K��֌��f���b��I��q�W[�ν*�s�[W3�f2)SΝIʴ��W�RW;y.)3k�$�qu�
���NL2�}kL0j��M�髣�l�q�i2�م�3"���(:��h�T�z���Ԉ�!�
��U��m+I+��Q�A��)$R�
��Gu<T/sq��/+1j�(r��uou�a9�|�����N��⩑�����z1��ߒS�@32���2�� oPgx��:�����GP�ϱ�Q<��Q!ͥ�TC3i�×j�o@�l^��җ��~�V2�i!��J�iʧ��JP�^�_zSh,���<�5(����Xfc���̠N��ף#7�`
�3쭍938�t�P�����
�j�S���W�����Kn����QD��md���&��D�&�S�q�vLW��z������M��NO�vz��B���Nm�2�R	�E��V��:%+�L�ƒK�VfU�A�'�K�a{	-�m����h	-��B��N)�������<����_)�.���3�Z�ޤ�U��]zY=C�8Sp�V�Խ�~����h=dkC��D]�s�.�
>�A�(3u��#f�LWa2|v7��]轖>eql�T�^�W}����D������a<YW��PwS�X�^�Sm��g�}�;�>��"+e�-�~��vHg�v`�tإ�45��9��e�w>[��ֹuW��k�Rf�0Z~¾�q/�^���E8���f���"f�,��b�yO>��-��gV�v��,��;���b[y�#�/?&��O�8�F��8�N|����c�
k`a��Q^�'�;��V��MC
V}�č�}Ǣ�@6�]���"v=���g��^v��r~?)�Is�g�"�������t7�wTv���F�wj�z��?,��o����v�C��>HG)CYn�%�
v
���Fv��ame/;>c_�o�O���yO�)�|.������{p��_��X)ErI��<#�Ƭ�����"���=��}�֭�m�m�=�{^wJf������|���3:�cEǺ���6�0ޗ��)���?q��{>�����°w�,�峋�3��6�-�N.c؃�ܟd�`��a'1�pn��ܛ��E|��x-���𵼍��?J)T2Kݥi�4Q�����:�'&}$�NK?�Ve�l�Sd�쒇ɓ�y����*ݫ���&�,�uz��+��C�a�a�a�a�a�a��޹���S�}vHZ*�J[&#[���u��$�*���T����ײ6��[�‡��tJvb�_��i>D���8���z�Gˏ"ɓw�	���u��@���0j�k� ����GvI����Af��d�e'���hx��r�������Ii����R���d\?�E\(g��{	oe|$�(W:J�+��t�x�Φ���&�a��Sz����J}��;{�O��x7�F\~��R����el��A���O�=��H�c�{�����n,��	����9�RZ����d�Hb�)M>��Hʖ��.AT�BLۊӽ
q�P��8x����
D�
��@���A�q�/A{�����O�tQ��Վ�4A}�֫��Ju-�B<�^]�7�Ǵ�6����s4	'���X7���
U{�&���u}���4G���{3���I~��Q��J}��v=M���V�%F.����Y*�c�i���jg&�Sg�(z�4����3��7��k���U�ڎ�؇��7vk��JwqEy�� ���!�
���/'�o��޽2]={;�R)Ɋ=)іo�����-*�b�5�
z�,qF����Պ�Y퓝���{���5�T�
�j�S�53��������;`>k�,J���TJ�ow�C�	c*��X��(��>B��hz8��d4PJ��J�VJ}C��5�V����PS�����+��M�PC��b��,6�i
�-����I��%�>��D��'���L��SYZ������c�S�}(]�	k����>�6�2]��nP�3w4��[hr�+l�cjMU�O��1"]��{���_��<����sk��Ҹ��65]���Synm��ǃ>Ж�
�n��Wa��)�/�T��r����U�W�(%�3_���Q�4��&��Gc&��ǻ��C_�4�W:�}	OM��9���.l��kך^�͖���6G��JX��J��:M�̅V6���21#Džp�2E�L*X�@�ځ�4e �pyZ���L��W7Y�r�ާK�8��o	�8�Eג�`>��-	U��YWC}��s�|�E�x��c����+s��;�	��Fcok<���������w�dd|�1���B�Zȝ���x����YӽB�x;k�6�v��۴7��>����ӭ�n����յ���q��1*�Ҧ��ޖ�w����j�nŕRj<A�j�Ug�E�2�'��G�9�T����J�2�g��ǔ��o6�D+-��Yp������!]�]��$a���,+���d�RWxa0��Sye�R�
��4����x|nlY�0�����.�	A݃Kxg�̡tMMC�Ц����P,��v�<������q��|CWy�Wul0��f[1���V��P�n����-����"Os*�*�"�V�E�(Ed��a�-ܨ�'����Z��h�)~FZ�����?�Y:�8��@�[+��1���z�v$=�H�֢L=.'���lKdw�c�d��+����!�����!����~�X[x��"�{��m��Q��~�>/��l�k+�_hUek���_c[�_��4?g��sxl����)�f^c���-9�f2�6�(1uG���+��;�b�WXc�u�ɡ�𱶰��
(_���j��[�á���ꇘ���6K(��\Sv�C�3���Yx���4g?�>�������1~�gw��(&�bCX"D��(��ܩ���(�d��0QcPBCy�!.,���
h��.�5Ĉi�I�r�\#-߸��D׈3H��l��uz�(q��g&���DԠ��yg��ȨA�����&j\l�\��;R(�B9�mH��������NG�^�l[��u�d����?7�,�����|L���+=�������L�{x��?X�����m��=$~�T����	}�fw�Xm�4Z5���h� �Sqv*i�Jj���TR:��NE��^"49%:ep�E!%��SjS���,��n�e>/�������)���K��[��)��XRe�
�
�
�a�2�4#tF،�6g[�9ݙ���s@��'t�sj�FGc�7��]ak{ܞy[�L��ݟ�@�V��m-��t*�N%�S	�W߹}�����!��QI�&���Lr���.��N���G�)�L�"vk�u�u�u�u�Uo�ڭ����ݺ�ʭ��
�;
��;Z�[��q��qb��Yh��駝	KDd?�zW%�L䉶�YLC4��I�80Bqw3���z���Y|���-�_�h��l�ָ���Zc��Z�Ҫ�VV�X�U�^Q�g��_J�����h�m���!��o�j�h�!����7[E/���q��wd�lo6��;����Eؓ�|�9��"[�bn��J��"�l��nV��ٯ��v�)�#���0љY/F6�$V��pN־��8qΈ�)Ξ˂t�H��9��Z�q&ϞYQ�㉴���N��9s]�,g��?8��8�����^I]t�3�e�f��)�J��0$0]/ )��G�8�Ì=M	�Gz�I��nIL`���Y�`b��ҥK��l&�a�Ι�K�0ꖫł��ҝ����o@�9�11���
ݣccp'���"�8Z�+�Y���-/�U80��q�>;!��0}ь����e�o?��k���.�]1���G\Z��KG[���~ʹ��Ucs��n�Ԝ�EU6^� ���<C��b����������S1t*�N�$����"�d��71�b,!.�Ic�B͖Ja�QZl���!�$�G��1�`,
)�6���5����ϰðנ7�O��b~%<>H""4{��4E�p'����r�
�3赨.\����c�/�sYN��d�9f9�'"|���7y𚂼3y��99�WD,��Ŋ���������-� ��_�7yf�e�[�ts�H�w�%��>>e3��qՙ[Fd�k_T� U�F��+�߸�]sQXH�y���5���M��N�2�94�<��uo����<��uoEߑ������ED�����I�/4�y��ކ�%㢢�S�]�6n�}��6w�E�mcb�S�]�֌������wdב�6�V���H��f�����>(��E9O}�v	.���8O}�w	.��t������}@Ϟ��.�������Է�%�w/��>O}�uɥt#*8�<���%��[������w�#�%�JK�S�9]G�KN-����W׽͆K�S��o\q���H=��K=[\��v)]Jlbw�%GkT�lsa/I�d�F�
��.��a�$%��.�x!!!{!���E��
�9$j�D�֢�-��m��`�b�$D�Hd� � � �!!z�N�̆,�l���j�Rl���=��-i�13[���U�l�%�@:bL -�0`68`ַ_��wQ M��Qi�^��³w�H1Xd&^2��#;�#u'�K�`[�jMufo�.��$.1�Jvu��Z�#�M\�')���K~"P�O�FDfo,���͐���}��%���s�����r��p�}� 3��� �I���퐓�����?5
��������e}��������cjo���n�WVP���؄����o����ē�G=-�P>�H)-i}�~)�%o��Ϗ�*.�=}>�A8f�#�#2R
���퇶���5�{ >��@��d?���!!F������g��0�����O;��_����KZ�*QK_A��t�%�N���'�� � �B����55ʮF���;;�)���L�����v��2��N��]xQ���LK����aw;�ည�s�Ѐ��F'w;׭GV�y�Zh�e��	8�^
M�9s>4����&Ap�*����O���sG]��B3�
�tv�*��U$��M?�bnw�dd`�6�]=3��m���e�����y3�R��c�˘�ż6�Mb^7�>�b+����%;�Ǽ���	�m`^'�1o*�*,����-�hI����C��|D3OƎ&����{ ��s�HI	[�D�ҚQ���=�p8߉�;�v�A���n���Df��2	�r�B��N��Wk4�Y��$��I�^��I���)n�&���(��;q�?�'�dw��fqY�K�m̜�F%�I<��wҨHc���o�.����)�0���WS"Ě`���D�����|�^؝�NI2��
"'KC:��|�Eڏl�1��-��hfnqfڷ��j���1�g6?�z�����/���(yl�}�m���,�%�8��6E3m�
�?�K3]��
-��"�j��6�~�M��
T\ր��l�`��Jl������^`�̞��/�l���\5��i�u$iV��Y�;Ӱ�Pie`�6d�
vC�!�m�2Z��0��h4ꍲ���W�]���z������Nڿ�i��Ǚ��E��&��qE�̷c
�MV|��9��4f�O�(b��2*+/�
t��
�X_���g}ie3c7yP��+���+�LE���ۉ���7&����=���_W�9hh�o�:�_~���'�֕���=���eEM���n�lg_�S�%��+�x*ۥ|�u�XQ.�x<e~6^�#�};x�W���ŽcR�nC�.
�a�*؅�P�f����L�57���4��j6�
5h6
�ʹ6��`�����xi�f�+�+l|�����$�f��ɦ��X�f2�����ʳ&+��$���-`~��&�l\��U[�r��!)U⏺Վ�ZH���uq>�dEi��	���Y=yJ�Hkj}Gm�o��DiR��U�z������U�ڒ�!!���O���r�����X�F�Fg�Eg��X�r�:WTc励r�X��ô�H��ѕ�F*�W�Vj��V'${�b,����I�[��
o+�(���9�|�Qի�W��™U�/�����C���M�*�#E�j��0��J��~p��q����]
�w����)ihķ_Ƹ2_��	��J�Œ|;�BCK��@ao��t�P�割���ᯟ��`Z,N��?���I��<�/���#��D�
�R����60k��#8m�+��`k��yA-���4�M:���%6�uv�ѡ�$���t��8^3�t_���*!�B!��_�����a�S8��L���`$�3^C#�nFS7�;��P4K��8�G�R,�x�BO�xЦ1��$��?��WP�D0/�?P
)���R)L��	~G���{P*ؓ�`�F���)�z��4��0\`����l�
�P؏���P��/�K9�@��
�8���C4������i X@�ԯ�M��BQX~E%tXJ��P*PO�0r�é�����4�Q1x1��#h�z�FjE���4C�_�X���"����TA#��/��`%�R� �'�'�R��Ɓ��L�$�P�I�4��K����4�<�T���ҥ��T�~F�4��Dp:]��T
�
�3��E�Q~%Mgk����4�j��4
l��Hu�'4����ix�1-�+��4����Ѹ�f��R=����h�F/5�K���S�����i\NW�G�:Z�^O�t5���QS-o�kQ�
<L7�b�&Z������L��_�[h�z�n�x-������w�i=�7P�z����h�7�w�M�FZ
�Ck�{���>���ւ�-��t��!=D���ô�D���h|�������t'���'�.p3�
���`3�>��F�����>�=�B����V�O�����!p�Ƨi�=��C�ң�s��c�z�;=>OO�;i���^ �"5�o�K�A-��Ԫ�W�
�E[�Wi+�=�&?�:��{4�m���&=��Eo�o�>z|����i�����]z|�v����?����%���C�K5�W�=t�v�G�U��c��1�?���Oi��:���~No��������������Iz<��+z���������-}��J��#�;:�~�� �#������Q��c�J����~L�����o���~'����~�wb������1��٘>�KL?�;1��ӏ�*��b��sb�-��b��sb��_��CZL?���C�����SL��gL�3���b��=����=�Ϙ�gL����?��/��?
endstream
endobj
9 0 obj
<</Type /FontDescriptor
/FontName /AAAAAA+ArialMT
/Flags 4
/Ascent 905.27344
/Descent -211.91406
/StemV 45.898438
/CapHeight 715.82031
/ItalicAngle 0
/FontBBox [-664.55078 -324.70703 2000 1005.85938]
/FontFile2 8 0 R>>
endobj
10 0 obj
<</Type /Font
/FontDescriptor 9 0 R
/BaseFont /AAAAAA+ArialMT
/Subtype /CIDFontType2
/CIDToGIDMap /Identity
/CIDSystemInfo <</Registry (Adobe)
/Ordering (Identity)
/Supplement 0>>
/W [0 [750] 72 [556.15234] 86 [500 277.83203]]
/DW 0>>
endobj
11 0 obj
<</Filter /FlateDecode
/Length 243>> stream
x�]P�j�0��+�����Nz0��R���di�
jI����+Ÿ�I�ff5Zym�g#�w���u�p�3i�����긢��Q!��.Sıq�U ?��"-���ᝐod��`�um�s?8��P���=wzQ�U�2���a��eϞ?���ni�78���PTW
�3W-Й���z��(�Y]�2���M�5-OYV��q�_�7>=�Ʊ�A�D?�,�N���m����J�{|�
endstream
endobj
4 0 obj
<</Type /Font
/Subtype /Type0
/BaseFont /AAAAAA+ArialMT
/Encoding /Identity-H
/DescendantFonts [10 0 R]
/ToUnicode 11 0 R>>
endobj
xref
0 12
0000000000 65535 f 
0000000015 00000 n 
0000000378 00000 n 
0000000108 00000 n 
0000009263 00000 n 
0000000145 00000 n 
0000000586 00000 n 
0000000641 00000 n 
0000000688 00000 n 
0000008464 00000 n 
0000008698 00000 n 
0000008949 00000 n 
trailer
<</Size 12
/Root 7 0 R
/Info 1 0 R>>
startxref
9402
%%EOF'

The ID of the chunk will be returned in the HTTP response body:

HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Type: application/json
Content-Length: 222

{
  "id" : "chPGu5ycojDxlB5bIubfVILCAo",
  "multihash" : [ "12207f99dc02b6a0443a93dcc7a393946b310b02e978dff45862c886e9c934ea0fd4", "16201a989035c872dfbbba952a0db0ae416a931c5c99c6ccc10a21bd2d114d708382" ],
  "size" : 9717
}

You will now create a document in the Document Service API by passing the created chunk ID:

$ curl 'https://dev-document.toosign.com/api/documents' -i -X POST \
    -H 'Authorization: Bearer eyJvZyI6Im9nTWZ0SWc1ZW9rdEJWIiwiZXhwIjoxNzE4ODYyOTQxLCJydyI6dHJ1ZSwidXMiOiJ1czgxMmp6cENjQTZNMiIsIndmIjoid2ZTOHYwTVlzaHl0cVUifQ.C4xmAC-do-64jOzRDo5DuJA_c7oVVUpd2fC0LkEROx8' \
    -H 'Content-Type: application/json' \
    -d '{
  "chunks" : [ "chQQrGugToF3vAuULvMRXBkG2s" ],
  "contentType" : "application/pdf",
  "filename" : "contract.pdf",
  "parseAnchors" : false,
  "signatureAnnotations" : [ {
    "page" : 1,
    "signer" : "siTiC1QowHx7HE",
    "x1" : 288,
    "x2" : 438,
    "y1" : 222,
    "y2" : 282
  } ]
}'

If successful, the HTTP response will be:

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 792

{
  "contentType" : "application/pdf",
  "createdOn" : 1718862340599,
  "filename" : "contract.pdf",
  "history" : [ {
    "byteMapping" : [ {
      "length" : 9717,
      "multihash" : [ "12207f99dc02b6a0443a93dcc7a393946b310b02e978dff45862c886e9c934ea0fd4", "16201a989035c872dfbbba952a0db0ae416a931c5c99c6ccc10a21bd2d114d708382" ]
    } ],
    "multihash" : [ "12207f99dc02b6a0443a93dcc7a393946b310b02e978dff45862c886e9c934ea0fd4", "16201a989035c872dfbbba952a0db0ae416a931c5c99c6ccc10a21bd2d114d708382" ]
  } ],
  "id" : "dcZtToQuLmv8ml",
  "organization" : "ogMftIg5eoktBV",
  "signatureAnnotations" : [ {
    "page" : 1,
    "signer" : "siTiC1QowHx7HE",
    "x1" : 288,
    "x2" : 438,
    "y1" : 222,
    "y2" : 282
  } ],
  "updatedOn" : 1718862340599,
  "workflow" : "wfShwD33q7NAPJ"
}

You can upload multiple documents by restarting from the document token creation.

Step 3: start the workflow #

To start the created workflow, you will set the workflow status to started:

$ curl 'https://dev.toosign.com/api/workflows/wfS4dOIppwT1Vn' -i -X PATCH \
    -H 'Authorization: Bearer eyJhdCI6ImF0Q2lYTGtHV3FGUTVIIn0.u3JVCuENAge4GG2vkbK7P9_dCJoVnyO9pXU-w7W65yM' \
    -H 'Content-Type: application/json' \
    -d '{
  "workflowStatus" : "started"
}'

Redirect the approver/signer #

When the workflow is created, you can configure whether the approvers and the signers are automatically invited by email, by text or by Whatsapp. If you prefer the approvers and the signers to be invited by other means, or manually by redirecting them from your website to the approbation/signature page, you can pass the parameter "invitationMode" : "noInvitation" and retrieve the approbation/signature links with the API. Moreover, you can pass a redirect URL in the request body so that the approver/signer is redirected to your website once the approbation/signature is finished:

$ curl 'https://dev.toosign.com/api/workflows/wf9h8gWvKL2Yat/signers/si98pfsIDj7xEh/signatureLinks' -i -X POST \
    -H 'Authorization: Bearer eyJhdCI6ImF0TjVoaTN6RXNKa29kIn0.708LNsJgDeBwLFVgVfu9wpPC6goveJHJmw3uxjydsso' \
    -H 'If-Match: "8qCOT3OcaPbK"' \
    -H 'Content-Type: application/json' \
    -d '{
  "redirectUrl" : "https://toy5930.acme.com/callback"
}'

The HTTP response body will contain the link that you can use to redirect the approver/signer to:

HTTP/1.1 200 OK
X-Audit-Log: alWMvfaMLoASfj
ETag: "aLGmw5U2Czeu"
Cache-Control: must-revalidate
Content-Type: application/json
Content-Length: 69

{
  "signatureLink" : "http://localhost:8789/?iJACBDVHWSa0oW9UQEOM"
}

Once finished, in case you passed a redirect URL on approbation/signature link creation, the approver/signer will be automatically redirected to your redirect URL. In the case, the following query parameters will be added to your redirect URL:

  • workflow: the ID of the signed workflow.
  • approver: the ID of the approver, in case of an approbation.
  • signer: the ID of the signer, in case of a signature.

Retrieve the signed documents #

Once the workflow is finished, you can retrieve the signed documents in the Document Service API:

$ curl 'https://dev-document.toosign.com/api/documents' -i -X GET \
    -H 'Authorization: Bearer eyJvZyI6Im9nTWZ0SWc1ZW9rdEJWIiwiZXhwIjoxNzE4ODYyOTQwLCJ1cyI6InVzMU44ZG9VazhYN1JNIiwid2YiOiJ3ZlM4djBNWXNoeXRxVSJ9.6wtKW0zdi_MiWgc3F7UoR5jfaiupV9wG7yusMWQpP7Y'

The HTTP response body will contain the signed document. If multiple documents were signed, the response will contain a ZIP file:

HTTP/1.1 200 OK
Content-Type: application/zip
Content-Disposition: attachment; filename="documents.zip"
Content-Length: 18428

PK���=�X���������������contract.pdf�zeXTm׶H�RC73���Hw��00�C���tIJ7(
"]�
҈�tI��O������?{�s��k����bU����A	X��-� ��̚���
c�ph�c�s�9�b���p�՜��.��C�^��؁�`�,mye#�F84���H'�����x��o�8�L�|��������V����s(c� ���9�������X�0���㄄��'�74���=��_�Ô	%Rb^վ�o:�mZWp;&��%�8# ���ED<ޓWZ�"�Ή��2%f�O�.N-�9;~-�é��\��7�N-B*��G�M��יb꯷�(;�TD_)����J��5��Д��pexzT6�Xz�r�#��!:��bq�@�uz���$����p@�jp˫�4��h'�p���M$`���@-�;����R|����?��F@iw��&�Vצ��u�5�*�A�c�1(��v�*#�Q�ghw�!�
������Wn$������n�P���������������G>��-�kw.W�W�VD�;���0�����I�1p[�%�_��E���1|E���d� L��t�L"������+
B�A������;	u�]	P�Ӝi(��B&*3��˚S?)6ǥ���n�'z`�򕿸g������eY^�[������̲��AJ�v���9�Թ߽�/���6_�ec8�rς&�8��a�#B�*l��#Iha2;��{�����:G���Ȥ���F�e�E�3y�9��8˭��n[H]8��('��O�x��Iy����N�Sz��
t��f�.rܹ ��Z�H��c0}�IS5��R9��G�x!ծ�R)�I"�������j�cɢC��i�X�WˎG,���-�R5� ��g�|t�vy��8͖��^w�@�5{�+��(��u��J����x�l�s�(bB�{>�Ox�lb��sR� M��?�:ךMw֗��˔ݙ�	]KVy��CS�I|��a�$��)c�K�+���f��T�m���������>s�9o��B�-�95)�R�+>U�Fj�x�qBlh>�,';�����(���(���~�)��_�f�^8�'�(��'��!L�G/9לZk�d{fUV��Ma�&.,�׎H��瞠�V�����d���F\�,K��D���u��~������v	�x�-R��X�T�^,�:vv�	�ٞ��<}
��S��w��V�tO��{�w��p��(CV-��tP�IѭZzu�ޜ5-I�NlK�u�i�-���C�P�i����4(���Bew^ӑ�Z�q����OQ���U�ͤ���z�7
5=�*?�Ƴ(�֚w߆l�	C�f1�j����S�?�4��v,���V�O/�̧S�� UPkg�����
�!���P��1�UI7"�3j����<S���{�W�Ԕg����6
��U�Z���7Y�w�:��Wu,��ݗ��g�S��{���ڑ�,��[����>�.��p��l[R��g���2�hP0��A�!���S_T2C�N�a[���g��݈�߬D��m$�楌^;��]�UJ$q@\�N�-"�t����]�5�~�C:�Fi�o�����
J���j?-�?���	Ws�$j�{i<�Ih׶�g��C�+�#���č\|���[��*Gg�Jnځ��I��(_>��D�;r3|��u쓋.��͙������a)�eX(-��u͢����.OH�ْ����9��6K�\WҼE��l����?�=��g��l�٪B�2�ABk*�q)����Iu��]��k:'N�%�u|�3[��|:2'�����'�\E��-�&�]��9��s��;g[.3M/}�=�X�#���Z?�+��f]�I�J��m�UWZ�:%�� &'{�SR���?k9�+�Vۆ�+÷Vz�(�,�0)GO�>z�����:o�/�s�ۋ^��&;�z��N�9O��{ۋ>ď��2��--����ۍ�
��z�)0X�D�~��L��=�GHwԆDž�A��E;����]⸎X�R��bKoҾ�5�����-���Bb&�`���*|�	���4�~��Y8;x��~����_+���[_�y�Z�w*�öW�p9��gr�P	P��X����]��|X�Tŗt�1���yс]1�=�f����j�f���l<.�_~s�ܐl�W�C��J8�VJ3�)�j@s%��U΀+V�p�-�������>KW���VCP��x,��0��9�$
��j��d��%&E��=!��t��9,�5��+�m���h���)C;�~�)Ⱥɦz�9"�*�q�lH�"r;�Ĝ,�~�2d��T���!::�nUu�.�jG�~���9�8}��s��
/|4қ��C��‹��:̭w������U�nxȪ��ݼ̼-��/����c2�}�`i[5�Cr���/���V��ݓ�@y��=ygσm�����%��a��}7g>,g�ĩ,�f�J�;.&�OB���ҷ���Ď�j4������vB���l?M�\�vlJ�{�L,O�c��
���B%|ގa�W\x�=�16zC/8�Q�+]��w�⳯ܨ�|�=H�������c�ŧabJ)����Y^�+��
lWU��C;;s����rn�*��	��fzrxT�>�(�3*���ڒ�P�r��3����>�9*,��ɏ�Ц͙
_���t��_�Wps��Ȩ\��g��#�ٜ�סӊf?�Q�ze�k�qv�r��G�������r
���%!�"�L�q�I�	�
��ߌI	_h�
����X!�:#''޴^�,��`sh��/CrDL��l�x�����nA������9����$�g��V�B�͡j
K�
�Xɕq�X����j��Y5c#�1I�j�'ft��<�4A/�tOU���"k�6K���='vL�0�^S� :2yc-v
Ѧ�(��;�^�Q>�M��A��,�ߨ(�^-	�-�3�r��-DX+k��3QU�>�:,�1)[}RX�w�lC��;T��	0�x�E��aoW���'6�G\lO��'���I��u:�DT�6��6Θ�O
�Q��۬N�qhM[C�,�![ukGݷQIr�Bh���h�{��A��II�|���6�IƉ�q���0�?��O
�����{�u`G}�`���i��MJ\tz�O_M��"=T'��AJ���u�qC�g�˅�����v�ǣ�L��z�x񵏻�u%}�?ySS7K���& �縝�DR��WE� �6O��K.��o�ͻ
��{ςc_�?�!3�LY�;v�̟���l�]Ħ�ѵ1�[��֖X��F�$�pq�}ID�9�h��2��20W�P���l\�[�:^j1�u�}[��-�'C��-äs�{��d?
j}i��qD!�IJ��>��]�9��͓��=��wHjh����h�(����8��;m`�|]O���zա�,���"H����w'����/���	~=��/1��n��'�.FYY��{ w=���zʆOx���'/
*j��׫hI�%u=Jt]lA�p�2-�����:���&훪�(�cy�wיT��ֹ�Q0U�tKp�SK��£x��'�+��
��(�N8}eK�C��I��?�*���i�!7Y�[p�r�g�+��g��L%Q>���c[Es�:Ħ��>��� F���!��I�ʌ�-�C=C��&�`��R��k��k��bt�_a4��6ܡ4L�hɴ�t6ؠ$
�a���T�β)����vc5a=ᔊ���񩣙�R�ɂ����"�����*5T��lPW�
Q�RޕQ�SZUR�I�aR�`��˰�%���b=0��Ǘ{90E���皮5�C�ӓf}�z�OcPK�(����}`�CK��U�3rI=&�K�,��l��ꋍ�[-~�w�@��g���|<DA��Vy�|��oQTE�NKϙy�j^�K���ȅg؆u��u����̒-3s^j$�(�������|	�L���6R��}�)��"Cτ'ɩ��ƒ����S�Td��km
�o��$�24�}�g��I+[�9�V�h��~(���1;׾����~�N\�]��	�q�qQ�r�t���|�l�j=���P���U?೦�+*E�:oqUK�q�w�W��LPa��H�NiFւ%MkMJ�i�2�����?�������4Vq�"ٰ,��C�������K�O~��e��L���,
k�g�R����߉a�:[G��"
)���6^ө�ixJof�~?��Y	飲�]|���
Wa�����;���J�A��V�,޴����p��S��_��J�}��1�&W�W.�\�]�]"��US���x�e3�S���{�"�
"	�	�	�8�Q���[�����+J���{��)}����W���ޓ/z��y�1�8���]8:�����jv���X�
�ě_�C�outB�b����C,���(��,n�!*�^�
��%�cl'��x�&K��JcO[��-h(
�ޝ"�v$Ŗ��￶E��);Db+
"�'bH'�?U1�n����W(�d���a��t���U�`������D}�,����_*c
M�B�}o��8�R���l�}m�0l��ȑ�?U_=h)�b��Q�J򢰳Q�eŝ<rq��R��6™�c�{F�\�)r�"�sA���dp�L~�+{+G��%TT�H���v4Y����雓��{�L͎�Ƈr�6l���d+}�NJ�@�qض׿/�R֎��O�^���Kq���d!�[�Lo�
z�?�W����3h��~8���0=��&$�A~C3�_������+1WW}�%����_Q���D��ooEM�6™���>w$�YZ�f�W�P�>�D�:�,�sJ�Ƚ���S��RM0��T��ezza�!S��#�	�Af<�|����g�q�
�u��s�n�)��)1g1l��>@�7�(x�ޯ���d<]�*���}_�'m�19&&�W�2T�pŁ��Wz�S �d�2���so�D���I�g}��}�a�(v&���	A��������KQ��q�R<$I�m��k�id����3�ySխ&ɂ?ʐņU�C�Z�,�/GbbH
H�F��h���y����@;Cf��w�\́�3���\���������K�9�(a����t�*���Iz.jaᲲ�NZ*9��n�X>���^�s6��u)3�Os����>�>�O�)̭K�юa�m����q3���u��|��-w�bQ�r�K���M4����O�+>���+��JL�Ĥ�	F���?u�`;��ӝ��������!���n��>1U�<��3��ΓÔA֕V����x���X�
���s�F��Ux�"~����
P��������s�����7���σ�\9�l����Xem�~�:Á�M��q28�ēD�|A��֌�[|���3~c�b<ξ!]|+�x�0�u�T�X���Z4�]�1�i������9^9 �2�2z����	�ye�<d=�a�u�Q�h�2./*1�:v�L����'k���fJ��O S���X�Iz��:@��([5i��\�F�.�3'b3&��}+��Yd�م���i�a����z����������j��\N��|��3x�\їI�E�BF��S��!�7r�~C�OC.�y�sɍ�etexN��+��>/��˷e��H�Ȱ��Ș��/�V쐴m�|��|����%��F������6�]��^��8���ZiN�ětR���t����rkL��(o��ز'/�gӗ�+�v�?����L���XlOBȢ��y���F�� p5c3�*�>R � v����)y������,F��j���TJ˨Ϡ�/}��T�E�zMƆƏ
N�^�+�H$��<|Q�ڥ⟑�^Q
��>�~�Y@�����愈H����J��VO\S��G��URs���K�)O�2�B����DB^�t��x�-��&2^,���1l`u��M��hL��(�,��2B=p'��M��!�+��dF5'����Qӻg�/u
�5��!m�}l��x���[���i��H�1k�sF���=K���x���ы���0�V��lf,�/֋k�]�33�*�I�Q_������1�~.͵��3��������|A\e�d��ko)�j{8[�J��*?/@a�s��<>�a�T�P����_�ɢuBsA"�T�CoC�*��+�R6��,Jn��ݾbƳ���V]��~�N�N�N��������M6qڏ��Q$pD-�8���e�Y8�(b�z�[eX��W�
��!����|�g�͜٠7s���L��I���ˁRui3���S�)3*�����L슒�#i*�_�QKOE؞��'y�v�,�-��K�Zc/��,a⁞�Gtm�rʳo�X�4���X�/X��.��`��j�
�RE�Qp01�QӤ��1X���26�X�����o�?�M�+��ln�|56��I}X������D�����M�0��N���~��pI��
Ie�	3��&v��dl�o�o����e]+�����%�d���~�s3��,�h�Re��견#1jX��O���2G颞jA���w^��y���
�YC>?7p�{B��g��cI�BB�j�K����J�_�Z���v.����أ�I4��{?�A�ʪ�������r��L�ӱ�0�h��.�PZ��݉��	��&�9���Q�\�r��\������ݟ }a����>8"�=�I)z�������|ě�x.�	�7jI񔤙�]J��qqм\kX)�������n�4&.w��oQ���m�}�ԋ��ޢy�+7qB�ނ��Ø����r6��(���0^S2��a�����/��
�;��1�rj/FԎ��Un��8�m�K�R�W��z(���X��������P����ڙ�o����C�c{������s“HU�^8ՅV�m�]�\�XfI[^��8��z��EB�X.uj�k�n�(�������#��ҡ�~�E���+،��$i��|�ar	1��=���p���}�Ql�nF~s"���E௦š6�h��R�&.�`f:����㠈E���;�4���;7����e|Y����j��c�^�oҔ�ۋ{[���'������z�S8���4fL��rPYdd��Ǵ�zS�W��3���EQ4O��E�����.�j��5�2��p`��6��Bv���XSR��w��5Ú���4���o�¾��v�f԰D'�`�[��!K�7[��a\�w
�ȟ1�S��O]�����h
Qe*=H��1e9�K27ٓ��h
�����A�g��vd�4x�˞���䂣HY�
��Gu�2�@��*q5������JY����k�ox�qM�$��<���q�x��=�%�<7eX�9���c�N�C�r"�4N�E��|`��������$�CB	�~���7vnu���zO�F>v)�5=��E�N�G�+͊���p2�ƥ�:r�k)�_��S��c_2[�{F�X?�ni�>z$���dH/li��$�{�LK��q��e���@����}U������Wd�ꕖX
�.�G��E��]�+P�'�ZI7Ɔr旵r|e��c�R��r�󨵈/� ���1꾬�7-m��
���M��Ķr.��Ј\�}�;�1�7���JX��������~��5	?�;��d�/��j�]v��ţ���Ȯ>6�a�J�D�����N�I�{�n�^F�DIp�l���ևܜy���3J/n��4Z%zFڏ�����oVܪt{��-�#�vՌ�l��:+�c�0�a�y�YI�F���U�Z�����$��~�)��Tu�@KŽi�j�+�w[7��0��o���� ��3��c����ح��V�E����n鄩�NO���m���}{��H4�A�(kޙ�z1��ѹ��M1U��"���4c��1��=�Hs)�;�u�p+K7�xZڰQ�}L#���&~������c7O{@t�&�m�F�B�y��~_�w�
<����k�I���z{�p�F<��Ur�;7.$g��3uGD1	��dW�w��4��M\��&U����t��ԟo������(����*HΣ���=���r{><O��}8��e��'�A!o�yG��
_��L�U�13ݭ�-��4����t����J��$�×'莃~_��G��s7�Ӽ/�ki������jE%�S�E>�p�o�\�A��(g����L�$
�ij�n/~�^j*���T���^.��2\�^D�����O�}o&��cϽ���/��������g�RHg���v�k����z#���pB�m���ϖ��(P�q=	��B�Wȵ�k���CA��:�N���B���p9$��
_�� ��(��ۢ��{���?�3����| A!�/��'A�� �]E��e!��E����$��R%����-<�;#���-mM3�_�{y�k�k_��OZhYy)e��(o��^#��kz8_�.oo���I�@Z��Z�����,$'P��鄲�p�ӌ�:���-�z���^^н�Z0���0>��?j�]=^U�_P�OrUE��*H��1�g����%~��\2Q�j��_���(��ur��'( Rc'�d��9j��Z�h�ﲁ��f�G>��B���.�ƒ��m����g���=��=���w��k2���0NN�i��:~~��OHa�-���[H�D�Gњ�r���v�+.�����O��S}A;�.���0�l;�?U�m��~85�=�BP''����.�(D�w ������E1G��y?v�L�R�WU_'u߱�dTPL4���B�_�x?ϊJPq�]QS�w��yy�������A���i��
_7�_������0�_Q}�db���W��Bkۣ���Ӵ�௻҂�����]����D�`������_����7�
�A����?�+��7����	�-�����0T���	~u�������D^����F_�7�:���?�匁;a��J
�'`e�V��PKP)P}#���%��PK���=�X���������������contract_1.pdf�zeXTm׶H�RC73���Hw��00�C���tIJ7(
"]�
҈�tI��O������?{�s��k����bU����A	X��-� ��̚���
c�ph�c�s�9�b���p�՜��.��C�^��؁�`�,mye#�F84���H'�����x��o�8�L�|��������V����s(c� ���9�������X�0���㄄��'�74���=��_�Ô	%Rb^վ�o:�mZWp;&��%�8# ���ED<ޓWZ�"�Ή��2%f�O�.N-�9;~-�é��\��7�N-B*��G�M��יb꯷�(;�TD_)����J��5��Д��pexzT6�Xz�r�#��!:��bq�@�uz���$����p@�jp˫�4��h'�p���M$`���@-�;����R|����?��F@iw��&�Vצ��u�5�*�A�c�1(��v�*#�Q�ghw�!�
������Wn$������n�P���������������G>��-�kw.W�W�VD�;���0�����I�1p[�%�_��E���1|E���d� L��t�L"������+
B�A������;	u�]	P�Ӝi(��B&*3��˚S?)6ǥ���n�'z`�򕿸g������eY^�[������̲��AJ�v���9�Թ߽�/���6_�ec8�rς&�8��a�#B�*l��#Iha2;��{�����:G���Ȥ���F�e�E�3y�9��8˭��n[H]8��('��O�x��Iy����N�Sz��
t��f�.rܹ ��Z�H��c0}�IS5��R9��G�x!ծ�R)�I"�������j�cɢC��i�X�WˎG,���-�R5� ��g�|t�vy��8͖��^w�@�5{�+��(��u��J����x�l�s�(bB�{>�Ox�lb��sR� M��?�:ךMw֗��˔ݙ�	]KVy��CS�I|��a�$��)c�K�+���f��T�m���������>s�9o��B�-�95)�R�+>U�Fj�x�qBlh>�,';�����(���(���~�)��_�f�^8�'�(��'��!L�G/9לZk�d{fUV��Ma�&.,�׎H��瞠�V�����d���F\�,K��D���u��~������v	�x�-R��X�T�^,�:vv�	�ٞ��<}
��S��w��V�tO��{�w��p��(CV-��tP�IѭZzu�ޜ5-I�NlK�u�i�-���C�P�i����4(���Bew^ӑ�Z�q����OQ���U�ͤ���z�7
5=�*?�Ƴ(�֚w߆l�	C�f1�j����S�?�4��v,���V�O/�̧S�� UPkg�����
�!���P��1�UI7"�3j����<S���{�W�Ԕg����6
��U�Z���7Y�w�:��Wu,��ݗ��g�S��{���ڑ�,��[����>�.��p��l[R��g���2�hP0��A�!���S_T2C�N�a[���g��݈�߬D��m$�楌^;��]�UJ$q@\�N�-"�t����]�5�~�C:�Fi�o�����
J���j?-�?���	Ws�$j�{i<�Ih׶�g��C�+�#���č\|���[��*Gg�Jnځ��I��(_>��D�;r3|��u쓋.��͙������a)�eX(-��u͢����.OH�ْ����9��6K�\WҼE��l����?�=��g��l�٪B�2�ABk*�q)����Iu��]��k:'N�%�u|�3[��|:2'�����'�\E��-�&�]��9��s��;g[.3M/}�=�X�#���Z?�+��f]�I�J��m�UWZ�:%�� &'{�SR���?k9�+�Vۆ�+÷Vz�(�,�0)GO�>z�����:o�/�s�ۋ^��&;�z��N�9O��{ۋ>ď��2��--����ۍ�
��z�)0X�D�~��L��=�GHwԆDž�A��E;����]⸎X�R��bKoҾ�5�����-���Bb&�`���*|�	���4�~��Y8;x��~����_+���[_�y�Z�w*�öW�p9��gr�P	P��X����]��|X�Tŗt�1���yс]1�=�f����j�f���l<.�_~s�ܐl�W�C��J8�VJ3�)�j@s%��U΀+V�p�-�������>KW���VCP��x,��0��9�$
��j��d��%&E��=!��t��9,�5��+�m���h���)C;�~�)Ⱥɦz�9"�*�q�lH�"r;�Ĝ,�~�2d��T���!::�nUu�.�jG�~���9�8}��s��
/|4қ��C��‹��:̭w������U�nxȪ��ݼ̼-��/����c2�}�`i[5�Cr���/���V��ݓ�@y��=ygσm�����%��a��}7g>,g�ĩ,�f�J�;.&�OB���ҷ���Ď�j4������vB���l?M�\�vlJ�{�L,O�c��
���B%|ގa�W\x�=�16zC/8�Q�+]��w�⳯ܨ�|�=H�������c�ŧabJ)����Y^�+��
lWU��C;;s����rn�*��	��fzrxT�>�(�3*���ڒ�P�r��3����>�9*,��ɏ�Ц͙
_���t��_�Wps��Ȩ\��g��#�ٜ�סӊf?�Q�ze�k�qv�r��G�������r
���%!�"�L�q�I�	�
��ߌI	_h�
����X!�:#''޴^�,��`sh��/CrDL��l�x�����nA������9����$�g��V�B�͡j
K�
�Xɕq�X����j��Y5c#�1I�j�'ft��<�4A/�tOU���"k�6K���='vL�0�^S� :2yc-v
Ѧ�(��;�^�Q>�M��A��,�ߨ(�^-	�-�3�r��-DX+k��3QU�>�:,�1)[}RX�w�lC��;T��	0�x�E��aoW���'6�G\lO��'���I��u:�DT�6��6Θ�O
�Q��۬N�qhM[C�,�![ukGݷQIr�Bh���h�{��A��II�|���6�IƉ�q���0�?��O
�����{�u`G}�`���i��MJ\tz�O_M��"=T'��AJ���u�qC�g�˅�����v�ǣ�L��z�x񵏻�u%}�?ySS7K���& �縝�DR��WE� �6O��K.��o�ͻ
��{ςc_�?�!3�LY�;v�̟���l�]Ħ�ѵ1�[��֖X��F�$�pq�}ID�9�h��2��20W�P���l\�[�:^j1�u�}[��-�'C��-äs�{��d?
j}i��qD!�IJ��>��]�9��͓��=��wHjh����h�(����8��;m`�|]O���zա�,���"H����w'����/���	~=��/1��n��'�.FYY��{ w=���zʆOx���'/
*j��׫hI�%u=Jt]lA�p�2-�����:���&훪�(�cy�wיT��ֹ�Q0U�tKp�SK��£x��'�+��
��(�N8}eK�C��I��?�*���i�!7Y�[p�r�g�+��g��L%Q>���c[Es�:Ħ��>��� F���!��I�ʌ�-�C=C��&�`��R��k��k��bt�_a4��6ܡ4L�hɴ�t6ؠ$
�a���T�β)����vc5a=ᔊ���񩣙�R�ɂ����"�����*5T��lPW�
Q�RޕQ�SZUR�I�aR�`��˰�%���b=0��Ǘ{90E���皮5�C�ӓf}�z�OcPK�(����}`�CK��U�3rI=&�K�,��l��ꋍ�[-~�w�@��g���|<DA��Vy�|��oQTE�NKϙy�j^�K���ȅg؆u��u����̒-3s^j$�(�������|	�L���6R��}�)��"Cτ'ɩ��ƒ����S�Td��km
�o��$�24�}�g��I+[�9�V�h��~(���1;׾����~�N\�]��	�q�qQ�r�t���|�l�j=���P���U?೦�+*E�:oqUK�q�w�W��LPa��H�NiFւ%MkMJ�i�2�����?�������4Vq�"ٰ,��C�������K�O~��e��L���,
k�g�R����߉a�:[G��"
)���6^ө�ixJof�~?��Y	飲�]|���
Wa�����;���J�A��V�,޴����p��S��_��J�}��1�&W�W.�\�]�]"��US���x�e3�S���{�"�
"	�	�	�8�Q���[�����+J���{��)}����W���ޓ/z��y�1�8���]8:�����jv���X�
�ě_�C�outB�b����C,���(��,n�!*�^�
��%�cl'��x�&K��JcO[��-h(
�ޝ"�v$Ŗ��￶E��);Db+
"�'bH'�?U1�n����W(�d���a��t���U�`������D}�,����_*c
M�B�}o��8�R���l�}m�0l��ȑ�?U_=h)�b��Q�J򢰳Q�eŝ<rq��R��6™�c�{F�\�)r�"�sA���dp�L~�+{+G��%TT�H���v4Y����雓��{�L͎�Ƈr�6l���d+}�NJ�@�qض׿/�R֎��O�^���Kq���d!�[�Lo�
z�?�W����3h��~8���0=��&$�A~C3�_������+1WW}�%����_Q���D��ooEM�6™���>w$�YZ�f�W�P�>�D�:�,�sJ�Ƚ���S��RM0��T��ezza�!S��#�	�Af<�|����g�q�
�u��s�n�)��)1g1l��>@�7�(x�ޯ���d<]�*���}_�'m�19&&�W�2T�pŁ��Wz�S �d�2���so�D���I�g}��}�a�(v&���	A��������KQ��q�R<$I�m��k�id����3�ySխ&ɂ?ʐņU�C�Z�,�/GbbH
H�F��h���y����@;Cf��w�\́�3���\���������K�9�(a����t�*���Iz.jaᲲ�NZ*9��n�X>���^�s6��u)3�Os����>�>�O�)̭K�юa�m����q3���u��|��-w�bQ�r�K���M4����O�+>���+��JL�Ĥ�	F���?u�`;��ӝ��������!���n��>1U�<��3��ΓÔA֕V����x���X�
���s�F��Ux�"~����
P��������s�����7���σ�\9�l����Xem�~�:Á�M��q28�ēD�|A��֌�[|���3~c�b<ξ!]|+�x�0�u�T�X���Z4�]�1�i������9^9 �2�2z����	�ye�<d=�a�u�Q�h�2./*1�:v�L����'k���fJ��O S���X�Iz��:@��([5i��\�F�.�3'b3&��}+��Yd�م���i�a����z����������j��\N��|��3x�\їI�E�BF��S��!�7r�~C�OC.�y�sɍ�etexN��+��>/��˷e��H�Ȱ��Ș��/�V쐴m�|��|����%��F������6�]��^��8���ZiN�ětR���t����rkL��(o��ز'/�gӗ�+�v�?����L���XlOBȢ��y���F�� p5c3�*�>R � v����)y������,F��j���TJ˨Ϡ�/}��T�E�zMƆƏ
N�^�+�H$��<|Q�ڥ⟑�^Q
��>�~�Y@�����愈H����J��VO\S��G��URs���K�)O�2�B����DB^�t��x�-��&2^,���1l`u��M��hL��(�,��2B=p'��M��!�+��dF5'����Qӻg�/u
�5��!m�}l��x���[���i��H�1k�sF���=K���x���ы���0�V��lf,�/֋k�]�33�*�I�Q_������1�~.͵��3��������|A\e�d��ko)�j{8[�J��*?/@a�s��<>�a�T�P����_�ɢuBsA"�T�CoC�*��+�R6��,Jn��ݾbƳ���V]��~�N�N�N��������M6qڏ��Q$pD-�8���e�Y8�(b�z�[eX��W�
��!����|�g�͜٠7s���L��I���ˁRui3���S�)3*�����L슒�#i*�_�QKOE؞��'y�v�,�-��K�Zc/��,a⁞�Gtm�rʳo�X�4���X�/X��.��`��j�
�RE�Qp01�QӤ��1X���26�X�����o�?�M�+��ln�|56��I}X������D�����M�0��N���~��pI��
Ie�	3��&v��dl�o�o����e]+�����%�d���~�s3��,�h�Re��견#1jX��O���2G颞jA���w^��y���
�YC>?7p�{B��g��cI�BB�j�K����J�_�Z���v.����أ�I4��{?�A�ʪ�������r��L�ӱ�0�h��.�PZ��݉��	��&�9���Q�\�r��\������ݟ }a����>8"�=�I)z�������|ě�x.�	�7jI񔤙�]J��qqм\kX)�������n�4&.w��oQ���m�}�ԋ��ޢy�+7qB�ނ��Ø����r6��(���0^S2��a�����/��
�;��1�rj/FԎ��Un��8�m�K�R�W��z(���X��������P����ڙ�o����C�c{������s“HU�^8ՅV�m�]�\�XfI[^��8��z��EB�X.uj�k�n�(�������#��ҡ�~�E���+،��$i��|�ar	1��=���p���}�Ql�nF~s"���E௦š6�h��R�&.�`f:����㠈E���;�4���;7����e|Y����j��c�^�oҔ�ۋ{[���'������z�S8���4fL��rPYdd��Ǵ�zS�W��3���EQ4O��E�����.�j��5�2��p`��6��Bv���XSR��w��5Ú���4���o�¾��v�f԰D'�`�[��!K�7[��a\�w
�ȟ1�S��O]�����h
Qe*=H��1e9�K27ٓ��h
�����A�g��vd�4x�˞���䂣HY�
��Gu�2�@��*q5������JY����k�ox�qM�$��<���q�x��=�%�<7eX�9���c�N�C�r"�4N�E��|`��������$�CB	�~���7vnu���zO�F>v)�5=��E�N�G�+͊���p2�ƥ�:r�k)�_��S��c_2[�{F�X?�ni�>z$���dH/li��$�{�LK��q��e���@����}U������Wd�ꕖX
�.�G��E��]�+P�'�ZI7Ɔr旵r|e��c�R��r�󨵈/� ���1꾬�7-m��
���M��Ķr.��Ј\�}�;�1�7���JX��������~��5	?�;��d�/��j�]v��ţ���Ȯ>6�a�J�D�����N�I�{�n�^F�DIp�l���ևܜy���3J/n��4Z%zFڏ�����oVܪt{��-�#�vՌ�l��:+�c�0�a�y�YI�F���U�Z�����$��~�)��Tu�@KŽi�j�+�w[7��0��o���� ��3��c����ح��V�E����n鄩�NO���m���}{��H4�A�(kޙ�z1��ѹ��M1U��"���4c��1��=�Hs)�;�u�p+K7�xZڰQ�}L#���&~������c7O{@t�&�m�F�B�y��~_�w�
<����k�I���z{�p�F<��Ur�;7.$g��3uGD1	��dW�w��4��M\��&U����t��ԟo������(����*HΣ���=���r{><O��}8��e��'�A!o�yG��
_��L�U�13ݭ�-��4����t����J��$�×'莃~_��G��s7�Ӽ/�ki������jE%�S�E>�p�o�\�A��(g����L�$
�ij�n/~�^j*���T���^.��2\�^D�����O�}o&��cϽ���/��������g�RHg���v�k����z#���pB�m���ϖ��(P�q=	��B�Wȵ�k���CA��:�N���B���p9$��
_�� ��(��ۢ��{���?�3����| A!�/��'A�� �]E��e!��E����$��R%����-<�;#���-mM3�_�{y�k�k_��OZhYy)e��(o��^#��kz8_�.oo���I�@Z��Z�����,$'P��鄲�p�ӌ�:���-�z���^^н�Z0���0>��?j�]=^U�_P�OrUE��*H��1�g����%~��\2Q�j��_���(��ur��'( Rc'�d��9j��Z�h�ﲁ��f�G>��B���.�ƒ��m����g���=��=���w��k2���0NN�i��:~~��OHa�-���[H�D�Gњ�r���v�+.�����O��S}A;�.���0�l;�?U�m��~85�=�BP''����.�(D�w ������E1G��y?v�L�R�WU_'u߱�dTPL4���B�_�x?ϊJPq�]QS�w��yy�������A���i��
_7�_������0�_Q}�db���W��Bkۣ���Ӵ�௻҂�����]����D�`������_����7�
�A����?�+��7����	�-�����0T���	~u�������D^����F_�7�:���?�匁;a��J
�'`e�V��PKP)P}#���%��PK����=�XP)P}#���%�������������������contract.pdfPK����=�XP)P}#���%����������������#��contract_1.pdfPK������v���pG����