June 16 Release
Updated response processing to ensure back compatibility on future API changes. Major design change here is that we moved from a pre-generated, schema-based object serialization (with pyxb) to a dynamic, XML "pseudo-object" serialization. This means that we can guarantee API changes will not break integrations but unfortunately we had to make potentially breaking changes in the SDK this time. Hopefully versioning and testing mean this is not nearly as impactful as a runtime API breaking change.
Essentially this means that code accessing optional response fields (mainly in the reporting APIs) needs to check for presence (e.g. use hasattr()) before accessing those fields.
See our sample code at https://github.com/AuthorizeNet/sample-code-python/blob/master/TransactionReporting/get-transaction-details.py for an example.