All notable changes to this project will be documented in this file.
- Fix
extra_kwargshandling for bank statementswait_for_results
- Fix
extra_kwargshandling for batcheswait_for_results
- Webhooks list no longer requires cursor/limit
- Add
AsyncSDKand corresponding async methods
- Add
transaction_idsto recurring groups - Add progress to
sdk.batches.wait_for_result
- Integration with v3 version of the api
- API resources are under
SDKand consistently organized intocreate,get,listanddelete.
sdk.transactions.create(...)
sdk.account_holders.create(...)- Auto-pagination is now supported for listing resources
for txn in sdk.transactions.list().auto_paginate():
...- Request ID integration for easier debugging
- Easier session lifecycle management through
SDK(session=http_session) - Added support for new resources:
webhooks - Added support for missing resources:
account_holders,entities,rules,categories
- Added
account_holder_idproperty to bank statements structure
- Added ability to specify account holder information to bank statements via
sdk.add_bank_statement.
- Added
google_maps_urlandapple_maps_urlto the structured location. - Improved bank statements waiting statuses and default file naming
- Removed deprecated
mccproperty - Updated bank_statements to match new API definition
- Fixed pydantic version to 1.x
- Added structured location support (address, city, state, country, postcode, longitude, store_number)
- Reverted some small changes that introduced latency issues in small batches
- Improved support for single transaction batches
- Added a flag to SDK
raise_on_enrichment_errorthat allows for enrichment to continue even if there are errors in enrichment process by populatingerroranderror_detailsof the affected transactions instead.
- Added a method to SDK
sdk.add_bank_statementto allow enrichment to be performed on file data. - For more details, refer to the relevant documentation.
- Add an optional
transaction_idsfilter tontropy_sdk.get_account_holder_transactionsto only fetch transactions that match the given IDs.
- Added support for webhooks in report transaction endpoint and added new
sdk.report_transactionmethod to report from base SDK object. - Added support for new list report and get report endpoints.
- Update batch size limit to 24960
- Add
label_groupattribute for EnrichedTransaction
- Added warning related to non-unique transaction ids.
- Remove
chart_of_accountsproperty from transactions - Added deprecation warnings to soon-to-be deprecated arguments (
labeling,create_account_holdersandmodel) - Removed use of
singledispatchmethodin favour of simpler input type handling - Improved error handling and parseability with several new error types (see ntropy_sdk.errors), for both client side and server side errors
- Added
intermediariesto the EnrichedTransaction class containing the information for transaction intermediaries (i.e., payment processor) - Added
created_atproperty toEnrichedTransaction - Added
regionparameter to SDK to allow connecting the SDK to EU datacenter seamlessly
- Added
ntropy_sdk.recurring_paymentspackage with support for recurring payments feature - Improve repr of objects across the board, using pandas if available
- Added
ntropy_sdk.get_account_holder_transactionsto fetch all transactions for an account holder
- Fixed support for Python 3.6
- Added RecurrenceGroup and recurrence_group for correct parsing of this information
- Rename
IncomeReport.report()toIncomeReport.report_dataframe()
- Added income checking to Ntropy SDK
- Allow subnormal float values in pydantic fields
- Fix bug with inplace=False for dataframe enrichment
- Added tests for models module
- Updated scikit-compatible model to use SDK Model class
- Include original Transaction object in EnrichedTransaction
- Support iterables in
add_transactionsandadd_transactions_async - Ensure that
to_dict()method always returns values even if None, but only returned fields that the API returns - Added support for income checking API (IncomeReport, IncomeGroup)
- Add repeating label to recurrence
- Renamed
predicted_mcctomccfor simplicity. - Increased mcc range to 700-9999
- Fixed a bug with deprecated
modelparameter for custom models
- Added TCP keep-alive to Ntropy API requests
- Migrated SDK classes to Pydantic (support for Decimal and str in numerical fields)
- Added new predicted_mcc field in EnrichedTransaction
- Update
get_account_holdermethod to return an AccountHolder object instead of dictionaries - Added docstrings to all public SDK methods. Consult the reference at https://developers.ntropy.com/sdk
- Added
retriesattribute to SDK object, which determines the number of retries per request before failling - Added
retry_on_unhandled_exceptionto SDK object, which controls whether the SDK should retry requests that return an error code in the range 500-511 - Removed
list_modelsmethod. Added base custom model API to SDK that closer resembles the REST API structure. Added three new methods to SDKtrain_custom_model,get_custom_modelandget_all_custom_models. Added new classes to represent custom model structuresLabeledTransactionandModel.
- Allow zero amount transactions, removed flag
- Progress bar enabled by default for only interactive mode
- Correctly handle ConnectionError when accessing API for expired HTTP sessions. Requests are retried by creating a new requests Session.
- Disabled zero amount check by default
- Account holder id is no longer mandatory for enrichments using dataframes
- Added missing mcc field when using dataframes
- Added
unique_merchant_idfield
- Updated documentation
- Added
inplaceflag foradd_transactionsthat is used when passing a dataframe to ensure if the input dataframe is modified or not - Extended support for older Python versions starting from 3.6 and upwards
- Set default value for
create_account_holdersinadd_transactionstoTrue
- Made
account_holder_idno longer required (but still usable). Transactions can now be enriched by only providingaccount_holder_type, and will not be tied to the ledger of anyaccount_holder. Transactions can also be sent withoutaccount_holder_idand withoutaccount_holder_typebut will not be labeled. - Added
transaction_typeattribute to theEnrichedTransactionobject which contains the expected type of expense for the enriched transaction (business,consumerorunknown) - Add models package to integrate with the new custom fine-tuning service. Includes
CustomTransactionClassifieras a trainable model, fully compatible with scikit-learn Estimator and Classifier interface. - Allow initialization of the SDK using the environment variable
NTROPY_API_KEY - Removed
benchmark.pyfile and corresponding documentation
create_account_holdersparameter forSDK.add_transactions. When set toTrue, if aTransactioncontains both anaccount_holder_idandan account_holder_type, that account holder will be created during theadd_transactionsmethod.SDK.get_account_holdermethod to retrieve, if it exists, stored information about one account holder.confidenceattribute to theEnrichedTransactionobject.