@@ -215,6 +215,49 @@ def process_document_url(
215215 request_arguments .update (kwargs )
216216 return self ._request ("POST" , endpoint_name , request_arguments )
217217
218+ def process_w9_document_url (self , file_url : str , file_name : Optional [str ] = None , ** kwargs : Dict ) -> Dict :
219+ """
220+ Process W9 Document from url and extract all the fields from it.
221+
222+ :param file_name: Name of file, eg. receipt.jpg
223+ :param file_url: Publicly accessible URL to a file, e.g. "https://cdn.example.com/receipt.jpg".
224+ :param kwargs: Additional request parameters
225+
226+ :return: Data extracted from the document.
227+ """
228+ if file_name is None :
229+ file_name = os .path .basename (file_url )
230+ endpoint_name = "/w9s/"
231+ request_arguments = {
232+ 'file_name' : file_name ,
233+ 'file_url' : file_url ,
234+ }
235+ request_arguments .update (kwargs )
236+ return self ._request ("POST" , endpoint_name , request_arguments )
237+
238+ def process_w9_document (self , file_path : str , file_name : Optional [str ] = None , ** kwargs ):
239+ """
240+ Process W9 Document from url and extract all the fields from it.
241+
242+ :param file_path: Path on disk to a file to submit for data extraction
243+ :param file_name: Name of file, eg. receipt.jpg
244+ :param kwargs: Additional request parameters
245+
246+ :return: Data extracted from the document.
247+ """
248+ endpoint_name = "/w9s/"
249+ if file_name is None :
250+ file_name = os .path .basename (file_path )
251+ with open (file_path , "rb" ) as image_file :
252+ base64_encoded_string = base64 .b64encode (image_file .read ()).decode ("utf-8" )
253+ request_arguments = {
254+ "file_name" : file_name ,
255+ "file_data" : base64_encoded_string ,
256+ }
257+ request_arguments .update (kwargs )
258+ document = self ._request ("POST" , endpoint_name , request_arguments )
259+ return document
260+
218261 def delete_document (self , document_id ):
219262 """
220263 Delete Document from Veryfi
0 commit comments