def embedded_signing_ceremony(): """ The document <file_name> will be signed by <signer_name> via an embedded signing ceremony. """ # # Step 1. The envelope definition is created. # One signHere tab is added. # The document path supplied is relative to the working directory # envDef = EnvelopeDefinition() envDef.email_subject = 'PLEASE GOD HELP ME, I NEED THIS WORKING!!' envDef.template_id = 'd5e617be-da0a-4431-9014-4575282f61d4' tRole = TemplateRole() tRole.role_name = 'Manager' tRole.name = 'Manuel Galvez' tRole.email = '*****@*****.**' tRole.client_user_id = clientUserId text_example = Text() text_example.tab_label = 'example' text_example.value = 'SIIII GRACIAS DIOS!! -- EXAMPLE' text_name = Text() text_name.tab_label = 'name' text_name.value = 'SIIII GRACIAS DIOS!! -- NAME' # text.document_id = '1' # text.page_number = '1' # text.recipient_id = '1' # text.x_position = '100' # text.y_position = '100' # text.scale_value = '0.5' tabs = Tabs() tabs.text_tabs = [text_example, text_name] tRole.tabs = tabs # Tabs(text_tabs=[Text(name='example', value='SIiiiiiii Gracias DIOS')]) envDef.template_roles = [tRole] name = TextCustomField(field_id='name', name='name', value='Manuel') last_name = TextCustomField(field_id='lastname', name='lastname', value='Galvez') testing = TextCustomField(field_id='testing', name='testing', value='Elks') manu = TextCustomField(field_id='manu', name='manu', value='manu') example = TextCustomField(field_id='example', name='example', value='Siiiiiiii') custom_fields = CustomFields( text_custom_fields=[example, name, last_name, testing, manu]) envDef.custom_fields = custom_fields '''recipients = Recipients() # Create the signer recipient model signer = Signer( # The signer email='*****@*****.**', name='Andres Vasquez', recipient_id="1", routing_order="1", client_user_id=clientUserId, # Setting the client_user_id marks the signer as embedded ) text = Text() text.document_id = '1' text.page_number = '1' text.recipient_id = '1' text.x_position = '100' text.y_position = '100' text.scale_value = '0.5' tabs = Tabs() tabs.text_tabs = [text] signer.tabs = tabs recipients.signers = [signer] envDef.recipients = recipients''' envDef.status = 'sent' api_client = ApiClient() api_client.host = base_path api_client.set_default_header("Authorization", "Bearer " + access_token) envelope_api = EnvelopesApi(api_client) envelopeSummary = envelope_api.create_envelope(account_id, envelope_definition=envDef) envelope_id = envelopeSummary.envelope_id print("Envelope {} has been sent to {} : {}".format( envelope_id, tRole.email, envelopeSummary)) '''recipient_view_request = RecipientViewRequest( authentication_method='None', client_user_id=clientUserId, recipient_id='1', return_url=base_url + '/dsreturn', user_name='Andres Vasquez', email='*****@*****.**' ) results = envelope_api.create_recipient_view(account_id, envelope_id, recipient_view_request=recipient_view_request)''' return '' #results.url
def embedded_signing_ceremony(): """ The document <file_name> will be signed by <signer_name> via an embedded signing ceremony. """ # # Step 1. The envelope definition is created. # One signHere tab is added. # The document path supplied is relative to the working directory # envDef = EnvelopeDefinition() envDef.email_subject = 'PLEASE GOD HELP ME, I NEED THIS WORKING!!' envDef.template_id = 'd5e617be-da0a-4431-9014-4575282f61d4' tRole = TemplateRole() tRole.role_name = 'Manager' tRole.name = 'Lending Front' tRole.email = '*****@*****.**' tRole.client_user_id = client_user_id text_example = Text() text_example.tab_label = 'example' text_example.value = 'SIIII GRACIAS DIOS!! -- EXAMPLE' text_name = Text() text_name.tab_label = 'name' text_name.value = 'SIIII GRACIAS DIOS!! -- NAME' text_name2 = Text() text_name2.tab_label = 'name2' text_name2.value = 'SIIII GRACIAS DIOS!! -- NAME2' text = Text() text.document_id = '1' text.page_number = '1' text.recipient_id = '1' text.x_position = '100' text.y_position = '100' text.scale_value = '0.5' text.value = 'THANKS GOD!!' title_label = Title() title_label.tab_label = 'lablel_example' title_label.value = 'LendingFront' tabs = Tabs() tabs.text_tabs = [text_example, text_name, text_name2, text] tabs.title_tabs = [title_label] tRole.tabs = tabs envDef.template_roles = [tRole] envDef.status = 'sent' name = TextCustomField(field_id='name', name='name', value='Manuel') last_name = TextCustomField(field_id='lastname', name='lastname', value='Galvez') testing = TextCustomField(field_id='testing', name='testing', value='Elks') manu = TextCustomField(field_id='manu', name='manu', value='manu') example = TextCustomField(field_id='example', name='example', value='Siiiiiiii') '''item_name = ListItem(text='name', value='Allen') item_lastname = ListItem(text='lastname', value='Galvez') item_testing = ListItem(text='testing', value='testing') item_manu = ListItem(text='manu', value='manu') listcf = ListCustomField(list_items=[item_name, item_lastname, item_testing, item_manu])''' custom_fields = CustomFields( text_custom_fields=[example, name, last_name, testing, manu]) envDef.custom_fields = custom_fields # envDef.recipients # print('*&**&*^&*&^%$#$%^&*(*&^%$#@!@#$%^&') print('') # # Step 2. Create/send the envelope. # api_client = ApiClient() api_client.host = base_path api_client.set_default_header("Authorization", "Bearer " + access_token) envelope_api = EnvelopesApi(api_client) envelopeSummary = envelope_api.create_envelope(account_id, envelope_definition=envDef) envelope_id = envelopeSummary.envelope_id print("Envelope {} has been sent to {}".format(envelope_id, tRole.email)) '''client_user_id = '2939' return_url = 'http://www.docusign.com/developer-center' recipient_view_request = docusign.RecipientViewRequest() recipient_view_request.return_url = return_url recipient_view_request.client_user_id = client_user_id recipient_view_request.authentication_method = 'email' recipient_view_request.user_name = 'Manuel Galvez' recipient_view_request.email = '*****@*****.**' view_url = envelope_api.create_recipient_view(account_id, envelope_id, recipient_view_request=recipient_view_request) ''' recipient_view_request = RecipientViewRequest( authentication_method='None', client_user_id=client_user_id, recipient_id='1', return_url=base_url + '/dsreturn', user_name='Lending Front', email='*****@*****.**') results = envelope_api.create_recipient_view( account_id, envelope_id, recipient_view_request=recipient_view_request) return results.url
def embedded_signing_ceremony(): """ The document <file_name> will be signed by <signer_name> via an embedded signing ceremony. """ # # Step 1. The envelope definition is created. # One signHere tab is added. # The document path supplied is relative to the working directory # '''with open(os.path.join(APP_PATH, file_name_path), "rb") as file: content_bytes = file.read()''' base64_file_content = '' #base64.b64encode(content_bytes).decode('ascii') # Create the document model '''document = Document( # create the DocuSign document object document_base64 = base64_file_content, name = 'Example document', # can be different from actual file name file_extension = 'pdf', # many different document types are accepted document_id = 1 # a label used to reference the doc )''' '''text_field = docusign.Text( tab_label='name', # tab_label must exactly match the field you created in the Docusign GUI value='Manuel' # value, as far as I can tell, must be a string. ) docusign.Tabs(text_tabs=[text_field])''' patient_first_name = TextCustomField(name='name', value='Allen', show='true', required='false') patient_last_name = TextCustomField(name='lastname', value='Elks', show='true', required='false') custom_fields = CustomFields( text_custom_fields=[patient_first_name, patient_last_name]) # envelope_definition.custom_fields = custom_fields # Custome fields custom_fields_old = CustomFields(['name'], ['Manuel']) # Create the signer recipient model signer = Signer( # The signer email=signer_email, name=signer_name, recipient_id="1", routing_order="1", client_user_id= client_user_id, # Setting the client_user_id marks the signer as embedded ) # Create a sign_here tab (field on the document) sign_here = SignHere( # DocuSign SignHere field/tab document_id='1', page_number='3', recipient_id='1', tab_label='SignHereTab', x_position='175', y_position='320') # Add the tabs model (including the sign_here tab) to the signer signer.tabs = Tabs(sign_here_tabs=[ sign_here ]) # The Tabs object wants arrays of the different field/tab types # Next, create the top level envelope definition and populate it. '''envelope_definition = EnvelopeDefinition( email_subject = "Please sign this document sent from the Python SDK", documents = [document], # The order in the docs array determines the order in the envelope recipients = Recipients(signers = [signer]), # The Recipients object wants arrays for each recipient type status = "sent", # requests that the envelope be created and sent. custom_fields = custom_fields )''' envDef = EnvelopeDefinition() envDef.email_subject = 'PLEASE GOD HELP ME, I NEED THIS WORKING!!' envDef.template_id = 'd5e617be-da0a-4431-9014-4575282f61d4' tRole = TemplateRole() tRole.role_name = 'Manager' tRole.name = 'Manuel Alejandro Galvez' tRole.email = '*****@*****.**' envDef.template_roles = [tRole] envDef.status = 'sent' envDef.custom_fields = custom_fields # # Step 2. Create/send the envelope. # api_client = ApiClient() api_client.host = base_path api_client.set_default_header("Authorization", "Bearer " + access_token) envelope_api = EnvelopesApi(api_client) results = envelope_api.create_envelope(account_id, envelope_definition=envDef) # # Step 3. The envelope has been created. # Request a Recipient View URL (the Signing Ceremony URL) # envelope_id = results.envelope_id recipient_view_request = RecipientViewRequest( authentication_method=authentication_method, client_user_id=client_user_id, recipient_id='1', return_url=base_url + '/dsreturn', user_name=signer_name, email=signer_email) results = envelope_api.create_recipient_view(account_id, envelope_id) #recipient_view_request = recipient_view_request) # # Step 4. The Recipient View URL (the Signing Ceremony URL) has been received. # Redirect the user's browser to it. # return results.url
def send_envelope(): check_token() # document 1 (html) has sign here anchor tag **signature_1** # document 2 (docx) has sign here anchor tag /sn1/ # document 3 (pdf) has sign here anchor tag /sn1/ # # The envelope has two recipients. # recipient 1 - signer # recipient 2 - cc # The envelope will be sent first to the signer. # After it is signed, a copy is sent to the cc person. args = { 'signer_email': ds_config("DS_SIGNER_EMAIL"), 'signer_name': ds_config("DS_SIGNER_NAME"), 'cc_email': ds_config("DS_CC_EMAIL"), 'cc_name': ds_config("DS_CC_NAME"), } # create the envelope definition env = EnvelopeDefinition(email_subject='Document sent from the Test Mode') doc1_b64 = base64.b64encode(bytes(create_document1(args), 'utf-8')).decode('ascii') # read files 2 and 3 from a local directory # The reads could raise an exception if the file is not available! with open(path.join(demo_docs_path, DOC_2_DOCX), "rb") as file: doc2_docx_bytes = file.read() doc2_b64 = base64.b64encode(doc2_docx_bytes).decode('ascii') with open(path.join(demo_docs_path, DOC_3_PDF), "rb") as file: doc3_pdf_bytes = file.read() doc3_b64 = base64.b64encode(doc3_pdf_bytes).decode('ascii') # Create the document models document1 = Document( # create the DocuSign document object document_base64=doc1_b64, name='Order acknowledgement', # can be different from actual file name file_extension='html', # many different document types are accepted document_id='1' # a label used to reference the doc ) document2 = Document( # create the DocuSign document object document_base64=doc2_b64, name='Battle Plan', # can be different from actual file name file_extension='docx', # many different document types are accepted document_id='2' # a label used to reference the doc ) document3 = Document( # create the DocuSign document object document_base64=doc3_b64, name='Lorem Ipsum', # can be different from actual file name file_extension='pdf', # many different document types are accepted document_id='3' # a label used to reference the doc ) # The order in the docs array determines the order in the envelope env.documents = [document1, document2, document3] # Create the signer recipient model signer1 = Signer(email=args['signer_email'], name=args['signer_name'], recipient_id="1", routing_order="1") # routingOrder (lower means earlier) determines the order of deliveries # to the recipients. Parallel routing order is supported by using the # same integer as the order for two or more recipients. # create a cc recipient to receive a copy of the documents cc1 = CarbonCopy(email=args['cc_email'], name=args['cc_name'], recipient_id="2", routing_order="2") # Create signHere fields (also known as tabs) on the documents, # We're using anchor (autoPlace) positioning # # The DocuSign platform searches throughout your envelope's # documents for matching anchor strings. So the # signHere2 tab will be used in both document 2 and 3 since they # use the same anchor string for their "signer 1" tabs. sign_here1 = SignHere(anchor_string='**signature_1**', anchor_units='pixels', anchor_y_offset='10', anchor_x_offset='20') sign_here2 = SignHere(anchor_string='/sn1/', anchor_units='pixels', anchor_y_offset='10', anchor_x_offset='20') # Add the tabs model (including the sign_here tabs) to the signer # The Tabs object wants arrays of the different field/tab types signer1.tabs = Tabs(sign_here_tabs=[sign_here1, sign_here2]) # Add the recipients to the envelope object recipients = Recipients(signers=[signer1], carbon_copies=[cc1]) env.recipients = recipients # Request that the envelope be sent by setting |status| to "sent". # To request that the envelope be created as a draft, set to "created" env.status = "sent" # Creates the Salse order Custom Field text_custom_field = TextCustomField(name='Sales order', value='Test_Mode', show='true', required='true') custom_fields = CustomFields(text_custom_fields=[text_custom_field]) env.custom_fields = custom_fields envelope_api = EnvelopesApi(api_client) results = envelope_api.create_envelope(get_account_id(), envelope_definition=env) return results