Create OFX Request and Response Files in Python API

Aspose.Finance for Python via .NET supports creating OFX request and response files in 1.03 and 2.2 format. For creating OFX documents, the API provides OfxRequestDocument and OfxResponseDocument classes. The following examples demonstrate creating OFX files request and response files in both 1.03 and 2.2 formats.

Create OFX Request File in .NET

ofxRequestDoc = OfxRequestDocument()
ofxRequestDoc.signon_request_message_set_v1 = SignonRequestMessageSetV1()
signonRequest = SignonRequest()
ofxRequestDoc.signon_request_message_set_v1.signon_request = signonRequest
signonRequest.client_date = "20200611000000"
signonRequest.user_id = "aspose"
signonRequest.user_password = "password"
fi = FinancialInstitution()
fi.organization = "aspose"
fi.financial_institution_id = "1"
signonRequest.financial_institution = fi
signonRequest.app_version = "1.0"
signonRequest.app_id = "Aspose.Finance"
signonRequest.client_user_id = "aaaaaaa"
ofxRequestDoc.bank_request_message_set_v1 = BankRequestMessageSetV1()
stmtTransRequest = StatementTransactionRequest()
ofxRequestDoc.bank_request_message_set_v1.statement_transaction_requests.append(stmtTransRequest)
stmtTransRequest.transaction_unique_id = "1111111"
stmtTransRequest.statement_request = StatementRequest()
stmtTransRequest.statement_request.bank_account_from = BankAccount()
stmtTransRequest.statement_request.bank_account_from.bank_id = "sssss"
stmtTransRequest.statement_request.bank_account_from.account_id = "sfsdfsfsdf"
stmtTransRequest.statement_request.bank_account_from.account_type = AccountEnum.CHECKING
stmtTransRequest.statement_request.inc_transaction = IncTransaction()
stmtTransRequest.statement_request.inc_transaction.start_date = "20200601000000"
stmtTransRequest.statement_request.inc_transaction.end_date = "20200611000000"
stmtTransRequest.statement_request.inc_transaction.include = True
ofxRequestDoc.save(os.path.join(outputDir, "newOfxRequestBankStatement.xml"), OfxVersionEnum.V2X)
ofxRequestDoc.save(os.path.join(outputDir, "newOfxRequestBankStatement.sgml"), OfxVersionEnum.V1X)

Create OFX Response File in .NET

ofxResponseDoc = OfxResponseDocument()
ofxResponseDoc.signon_response_message_set_v1 = SignonResponseMessageSetV1()
signonResponse = SignonResponse()
ofxResponseDoc.signon_response_message_set_v1.signon_response = signonResponse
signonResponse.status = Status()
signonResponse.status.code = "0"
signonResponse.status.severity = SeverityEnum.INFO
signonResponse.status.message = "SUCCESS"
signonResponse.server_date = "20200611"
signonResponse.profile_update_date = "20200611"
fi = FinancialInstitution()
fi.organization = "aspose"
fi.financial_institution_id = "1"
signonResponse.financial_institution = fi
signonResponse.session_cookie = "11111111111111111"
ofxResponseDoc.bank_response_message_set_v1 = BankResponseMessageSetV1()
stmtTransResponse = StatementTransactionResponse()
ofxResponseDoc.bank_response_message_set_v1.statement_transaction_responses.append(stmtTransResponse)
stmtTransResponse.transaction_unique_id = "829631324"
stmtTransResponse.status = Status()
stmtTransResponse.status.code = "0"
stmtTransResponse.status.severity = SeverityEnum.INFO
stmtTransResponse.statement_response = StatementResponse()
stmtTransResponse.statement_response.currency = CurrencyEnum.USD
stmtTransResponse.statement_response.bank_account_from = BankAccount()
stmtTransResponse.statement_response.bank_account_from.bank_id = "1111111"
stmtTransResponse.statement_response.bank_account_from.account_id = "1111111111111"
stmtTransResponse.statement_response.bank_account_from.account_type = AccountEnum.CHECKING
stmtTransResponse.statement_response.bank_transaction_list = BankTransactionList()
stmtTransResponse.statement_response.bank_transaction_list.start_date = "20200601000000"
stmtTransResponse.statement_response.bank_transaction_list.end_date = "20200611000000"
transaction1 = StatementTransaction()
transaction1.transaction_type = TransactionEnum.DEBIT
transaction1.posted_date = "20200611000000"
transaction1.transaction_amount = "-12"
transaction1.financial_institution_transaction_id = "1111111111111111111111111"
transaction1.name = "bbbbbbbbbbbbbbbbbbbbbbb"
transaction2 = StatementTransaction()
transaction2.transaction_type = TransactionEnum.CREDIT
transaction2.posted_date = "20200611000000"
transaction2.transaction_amount = "22222.11"
transaction2.financial_institution_transaction_id = "2222222222222222222222222222"
transaction2.name = "wwwwwwwwwwwwwwwwwwwwwwww"
stmtTransResponse.statement_response.bank_transaction_list.statement_transactions.append(transaction1)
stmtTransResponse.statement_response.bank_transaction_list.statement_transactions.append(transaction2)
stmtTransResponse.statement_response.ledger_balance = LedgerBalance()
stmtTransResponse.statement_response.ledger_balance.balance_amount = "+2222.42"
stmtTransResponse.statement_response.ledger_balance.date_as_of = "20200611000000"
stmtTransResponse.statement_response.available_balance = AvailableBalance()
stmtTransResponse.statement_response.available_balance.balance_amount = "+222222.42"
stmtTransResponse.statement_response.available_balance.date_as_of = "20200611000000"
ofxResponseDoc.save(os.path.join(outputDir,"newOfxResponseBankStatement.xml"), OfxVersionEnum.V2X)
ofxResponseDoc.save(os.path.join(outputDir,"newOfxResponseBankStatement.sgml"), OfxVersionEnum.V1X)