Ntropy Income Check allows you to extract the details about all income sources of your customers from their bank transactions. To get an accurate result, it is important to connect all bank accounts that belong to a user.
The first step is to add the entire transaction history of an account holder using Ntropy enrichment. If you have previously added these transactions, you do not need to add them again.
Once transactions have been added, an income report can be generated:
- Python SDK
$ curl \
-H "X-API-KEY: <YOUR-API-KEY>" \
-H "Content-Type: application/json" \
-X POST \
from ntropy_sdk import SDK
sdk = SDK("<YOUR-API-KEY>")
income_report = sdk.get_account_income_report(<account_holder_id>)
You will get back the income report as a JSON object with the API and as an IncomeReport with the SDK:
"duration": "3 months",
"latest_payment_description": "GUSTO PAYROLL PAY 631475 223009",
"duration": "0 days",
"income_type": "interest and dividends",
"latest_payment_description": "Credit Interest",
Each output field within the response is explained below.
|first_payment_date||date||Date of the first transaction in the income group.|
|income_type||string||Type of income. Can be one of: |
|latest_payment_date||date||Date of the most recent transaction in the income group.|
|duration||string||Time elapsed between the first and last transaction of the income group.|
|latest_payment_description||date||Example description of a transaction from that income group (the most recent one).|
|is_active||boolean||True if the income group is recent enough, periodic and the next expected payment date is more recent than the last account transaction date.|
|pay_frequency||enum||Time between transactions in this income group; |
Note that there may be miscellaneous transactions within an income group (bonuses, refunds, reversals, adjustments, bank verifications, etc.) that are outside of the this pay frequency.
|next_expected_payment_amount||float||Estimation for the next payment amount of this income group, (|
|next_expected_payment_date||date||Estimation for the next payment amount of this income group, (|
|source||string||Name of the income source. This can refer to an employer, organization, or person. (|
|total_amount||float||Total amount of income during the period between first-date and latest-date.|
|iso_currency_code||string||Currency of the transaction in ISO-4217 format.|
|transaction_ids||list(string)||Ids of transactions that belong to this income group.|
The Ntropy SDK provides additional methods to analyze income reports:
returns a Pandas DataFrame object with a list of all income sources for the account holder
amount first_payment_date latest_payment_date income_type source transaction_ids pay_frequency
0 22352.51 2021-03-18 2022-08-02 possible income - please verify City of Wannasee [31821657-f370-48a5-9836-87cbbaf03e22, b3445ec... bi-weekly
1 12633.96 2021-05-07 2022-07-12 government benefits N/A [31676a30-6bbb-4c68-4739-0ag72192d3d1, 3a89a36... other
returns an IncomeSummary object with the following attributes:
|main_income_source||string||The main income source of an IncomeReport.|
|main_income_type||string||The main income type of an IncomeReport; see income_type in the Response table above.|
|total_income||float||Total amount of income, including earned, passive, and possible.|
|earned_income||float||Total amount of earned income.|
|passive_income||float||Total amount of passive income.|
|possible_income||float||Total amount of possible income.|
|earned_income_sources||list(string)||A list of sources for earned income.|
|passive_income_sources||list(string)||A list of sources for passive income.|
|possible_income_sources||list(string)||A list of sources for possible income.|
If a group of transactions may represent an income, but the type is unclear, then you will see income_type:
possible income - please verify. We recommend verifying each such income group with the owner of the account.
When there is no identifiable source associated with an income group or we cannot identify one with sufficient certainty, you will get
null returned as the source. In some cases, such as a recurring wire transfer,
null does not represent low confidence; the specified income group simply does not contain an organization or person that can be marked as the source.
Income information can only be extracted using the transaction data provided. If there are additional accounts associated with the account holder, and if transactions from those accounts have not been added, we will not be able to provide a full picture of the user's income.