import requests
import os
from concurrent.futures import ThreadPoolExecutor
def upload_document(account_id, file_path, doc_info):
"""Upload a single document"""
url = f"https://api.fifteenth.com/v1beta/accounts/{account_id}/documents"
headers = {"Authorization": "Bearer 15th_your_api_key_here"}
with open(file_path, 'rb') as file:
files = {'file': file}
response = requests.post(url, headers=headers, files=files, data=doc_info)
return response.json()
# Define documents to upload
documents = [
{
'file_path': 'w2_2024.pdf',
'doc_info': {
'tax_year': '2024',
'description': 'W-2 from employer'
}
},
{
'file_path': '1099_div.pdf',
'doc_info': {
'tax_year': '2024',
'description': 'Dividend income from investments'
}
}
]
# Upload documents in parallel
with ThreadPoolExecutor(max_workers=3) as executor:
futures = [
executor.submit(upload_document, account_id, doc['file_path'], doc['doc_info'])
for doc in documents
]
results = [future.result() for future in futures]
for result in results:
print(f"Uploaded: {result['filename']} - ID: {result['id']}")