Affordability

Returns identified recurring sources of income, such as salary payments, benefits, pensions etc.

Potential Use Cases:

  • Detect recurring income
  • Distinguish salary structure: monthly, fortnightly, ad-hoc/contractor

The Insights webhook is HTTPS post request and a typical example of the request body is as follows:

{
  "type": "INSIGHTS",
  "data": {
    "metadata": {
      "merchantId": "684af205b26c48042487c93c",
      "customerId": "eixyc0oxx9o0",
      "reference": "eixyc0oxx9o0",
      "citizenTransactionId": "54f97545-a987-cfa9-b2a8-f66b97",
      "merchantTradingName": "Test Merchant"
    },
    "insightGroup": {
      "id": "68d6593704a1aa70943d2bb1",
      "name": "Affordability insights",
      "insights": [
        "AFFORDABILITY"
      ],
      "period": [
        "MONTHLY"
      ],
      "fromDate": "2025-06-28T09:32:33.440188Z",
      "toDate": "2025-09-26T09:32:33.440206Z"
    },
    "insights": {
      "AFFORDABILITY": {
        "insight": "AFFORDABILITY",
        "fromDate": "2025-04-01T00:00:00Z",
        "toDate": "2025-07-31T23:59:59Z",
        "assessableIncome": {
          "qualifyingIncomeTypes": [
            "Salary",
            "State Pension",
            "Gig",
            "Other income",
            "Gambling"
          ],
          "statistics": [
            {
              "currency": "GBP",
              "MONTHLY": {
                "average": 125,
                "standardDeviation": 129.9
              }
            },
            {
              "currency": "GBP",
              "MONTHLY": {
                "average": 1852.5,
                "standardDeviation": 1886.6
              }
            }
          ],
          "period": {
            "MONTHLY": [
              {
                "fromDate": "2025-04-01T00:00:00Z",
                "toDate": "2025-04-30T23:59:59Z",
                "byCurrency": [
                  {
                    "currency": "GBP",
                    "amount": 0
                  },
                  {
                    "currency": "EUR",
                    "amount": 0
                  }
                ]
              },
              {
                "fromDate": "2025-05-01T00:00:00Z",
                "toDate": "2025-05-31T23:59:59Z",
                "byCurrency": [
                  {
                    "currency": "EUR",
                    "amount": 200.0
                  },
                  {
                    "currency": "GBP",
                    "amount": 4210.0
                  }
                ]
              },
              {
                "fromDate": "2025-06-01T00:00:00Z",
                "toDate": "2025-06-30T23:59:59Z",
                "byCurrency": [
                  {
                    "currency": "GBP",
                    "amount": 3200.0
                  },
                  {
                    "currency": "EUR",
                    "amount": 300.0
                  }
                ]
              },
              {
                "fromDate": "2025-07-01T00:00:00Z",
                "toDate": "2025-07-31T23:59:59Z",
                "byCurrency": [
                  {
                    "currency": "GBP",
                    "amount": 0
                  },
                  {
                    "currency": "EUR",
                    "amount": 0
                  }
                ]
              }
            ]
          }
        },
        "accounts": [
          {
            "accountId": "6414EEAB-8BD6-4B18-8AEE-72B10A407930",
            "bank": "HALIFAX",
            "currency": "GBP",
            "consents": [
              {
                "lastUpdateAt": "2025-07-22T00:00:00Z",
                "status": "ACTIVE",
                "createdAt": "2025-06-22T00:00:00Z",
                "expiresAt": "2025-09-22T00:00:00Z"
              }
            ],
            "income": {
              "statistics": {
                "totalAmount": 5710.0,
                "MONTHLY": {
                  "average": 1427.5,
                  "standardDeviation": 1455.94
                }
              },
              "period": {
                "MONTHLY": [
                  {
                    "fromDate": "2025-04-01T00:00:00Z",
                    "toDate": "2025-04-30T23:59:59Z",
                    "totalAmount": 0,
                    "transactions": []
                  },
                  {
                    "fromDate": "2025-05-01T00:00:00Z",
                    "toDate": "2025-05-31T23:59:59Z",
                    "totalAmount": 3260.0,
                    "transactions": [
                      {
                        "incomeType": "Salary",
                        "totalAmount": 1000.0,
                        "frequency": "monthly",
                        "quantity": 1,
                        "lastPaymentDate": "2025-05-29T10:00:00Z"
                      },
                      {
                        "incomeType": "Salary",
                        "totalAmount": 1000.0,
                        "frequency": "irregular",
                        "quantity": 1,
                        "lastPaymentDate": "2025-05-11T10:00:00Z"
                      },
                      {
                        "incomeType": "Gig",
                        "totalAmount": 500.0,
                        "frequency": "monthly",
                        "quantity": 1,
                        "lastPaymentDate": "2025-05-05T10:00:00Z"
                      },
                      {
                        "incomeType": "State Pension",
                        "totalAmount": 760.0,
                        "frequency": "weekly",
                        "quantity": 4,
                        "lastPaymentDate": "2025-05-26T10:00:00Z"
                      },
                      {
                        "incomeType": "Benefits",
                        "totalAmount": 100.0,
                        "frequency": "irregular",
                        "quantity": 1,
                        "lastPaymentDate": "2025-05-20T10:00:00Z"
                      }
                    ]
                  },
                  {
                    "fromDate": "2025-06-01T00:00:00Z",
                    "toDate": "2025-06-30T23:59:59Z",
                    "totalAmount": 2450.0,
                    "transactions": [
                      {
                        "incomeType": "Salary",
                        "totalAmount": 1000.0,
                        "frequency": "monthly",
                        "quantity": 1,
                        "lastPaymentDate": "2025-06-29T10:00:00Z"
                      },
                      {
                        "incomeType": "Private Pension",
                        "totalAmount": 500.0,
                        "frequency": "monthly",
                        "quantity": 1,
                        "lastPaymentDate": "2025-06-05T10:00:00Z"
                      },
                      {
                        "incomeType": "Gig",
                        "totalAmount": 950.0,
                        "frequency": "weekly",
                        "quantity": 5,
                        "lastPaymentDate": "2025-06-30T10:00:00Z"
                      }
                    ]
                  },
                  {
                    "fromDate": "2025-07-01T00:00:00Z",
                    "toDate": "2025-07-31T23:59:59Z",
                    "totalAmount": 0,
                    "transactions": []
                  }
                ]
              }
            }
          },
          {
            "accountId": "09963B8C-CD90-446A-8FA7-22B78855A9F7",
            "bank": "HALIFAX",
            "currency": "EUR",
            "consents": [
              {
                "lastUpdateAt": "2025-07-22T00:00:00Z",
                "status": "ACTIVE",
                "createdAt": "2025-06-22T00:00:00Z",
                "expiresAt": "2025-09-22T00:00:00Z"
              }
            ],
            "income": {
              "statistics": {
                "totalAmount": 500.0,
                "MONTHLY": {
                  "average": 125,
                  "standardDeviation": 129.9
                }
              },
              "period": {
                "MONTHLY": [
                  {
                    "fromDate": "2025-04-01T00:00:00Z",
                    "toDate": "2025-04-30T23:59:59Z",
                    "totalAmount": 0,
                    "transactions": []
                  },
                  {
                    "fromDate": "2025-05-01T00:00:00Z",
                    "toDate": "2025-05-31T23:59:59Z",
                    "totalAmount": 200.0,
                    "transactions": [
                      {
                        "incomeType": "Other income",
                        "totalAmount": 200.0,
                        "frequency": "monthly",
                        "quantity": 1,
                        "lastPaymentDate": "2025-05-26T10:00:00Z"
                      }
                    ]
                  },
                  {
                    "fromDate": "2025-06-01T00:00:00Z",
                    "toDate": "2025-06-30T23:59:59Z",
                    "totalAmount": 300.0,
                    "transactions": [
                      {
                        "incomeType": "Other income",
                        "totalAmount": 300.0,
                        "frequency": "monthly",
                        "quantity": 1,
                        "lastPaymentDate": "2025-06-26T10:00:00Z"
                      }
                    ]
                  },
                  {
                    "fromDate": "2025-07-01T00:00:00Z",
                    "toDate": "2025-07-31T23:59:59Z",
                    "totalAmount": 0,
                    "transactions": []
                  }
                ]
              }
            }
          },
          {
            "accountId": "7499D207-F73D-415E-95E7-97D94065FB14",
            "bank": "HALIFAX",
            "currency": "GBP",
            "consents": [
              {
                "lastUpdateAt": "2025-07-22T00:00:00Z",
                "status": "ACTIVE",
                "createdAt": "2025-06-22T00:00:00Z",
                "expiresAt": "2025-09-22T00:00:00Z"
              }
            ],
            "income": {
              "statistics": {
                "totalAmount": 1700.0,
                "MONTHLY": {
                  "average": 425,
                  "standardDeviation": 430.84
                }
              },
              "period": {
                "MONTHLY": [
                  {
                    "fromDate": "2025-04-01T00:00:00Z",
                    "toDate": "2025-04-30T23:59:59Z",
                    "totalAmount": 0,
                    "transactions": []
                  },
                  {
                    "fromDate": "2025-05-01T00:00:00Z",
                    "toDate": "2025-05-31T23:59:59Z",
                    "totalAmount": 950.0,
                    "transactions": [
                      {
                        "incomeType": "Salary",
                        "totalAmount": 200.0,
                        "frequency": "monthly",
                        "quantity": 1,
                        "lastPaymentDate": "2025-05-02T10:00:00Z"
                      },
                      {
                        "incomeType": "State Pension",
                        "totalAmount": 750.0,
                        "frequency": "monthly",
                        "quantity": 1,
                        "lastPaymentDate": "2025-05-02T10:00:00Z"
                      }
                    ]
                  },
                  {
                    "fromDate": "2025-06-01T00:00:00Z",
                    "toDate": "2025-06-30T23:59:59Z",
                    "totalAmount": 750.0,
                    "transactions": [
                      {
                        "incomeType": "State Pension",
                        "totalAmount": 750.0,
                        "frequency": "monthly",
                        "quantity": 1,
                        "lastPaymentDate": "2025-06-02T10:00:00Z"
                      }
                    ]
                  },
                  {
                    "fromDate": "2025-07-01T00:00:00Z",
                    "toDate": "2025-07-31T23:59:59Z",
                    "totalAmount": 0,
                    "transactions": []
                  }
                ]
              }
            }
          }
        ]
      }
    }
  }
}

Parameter list:

data.insights.AFFORDABILITY

FieldTypeDescription
insightstringAlways AFFORDABILITY
fromDatestringStart date for the insight period (ISO 8601).
toDatestringEnd date for the insight period (ISO 8601).
assessableIncomeobjectOverall assessable income details (see below).
accountsarrayIndividual account income breakdowns (see below).

Assessable Income

FieldTypeDescription
qualifyingIncomeTypesarrayList of income types considered in this assessment (e.g. "Salary", "State Pension", "Gig", "Other income", "Gambling").
statisticsarray[Assessable Income Statistics]Cross‑account income statistics, grouped by currency.
periodAssessable Income PeriodPeriod‑based assessable income, grouped by currency.

Assessable Income Statistics

FieldTypeDescription
currencystring3‑letter ISO currency code (e.g. "GBP", "EUR").
MONTHLYStatisticsStatistical summary for this currency on a monthly basis.

Statistics

FieldTypeDescription
averagenumberMean income amount for the specified period.
standardDeviationnumberMeasures the dispersion of income amounts around the mean, indicating income stability.

Assessable Income Period

FieldTypeDescription
<Period>array[Assessable Income Period Data]Keyed by period type. Example uses MONTHLY.

Assessable Income Period Data

FieldTypeDescription
fromDatestringMonth period start date (ISO 8601).
toDatestringMonth period end date (ISO 8601).
byCurrencyarray[Assessable Income Amount]List of income by currency.

Assessable Income Amount

FieldTypeDescription
currencystring3‑letter ISO currency code.
amountnumberTotal assessable income in this currency for the period bucket.

Account

FieldTypeDescription
accountIdstringUnique identifier of the account.
bankstringName of the bank.
currencystringAccount currency code (ISO 4217).
consentsarray[Consent]List of consent status objects (see below).
incomeAccount IncomeIncome statistics and monthly breakdown.

Consent

FieldTypeDescription
lastUpdateAtstringLast consent update (ISO 8601).
statusstringConsent status, e.g. "ACTIVE".
createdAtstringConsent creation date.
expiresAtstringConsent expiry date.

Account Income

FieldTypeDescription
statisticsAccount Income StatisticsAggregate statistics for this account.
periodAccount Income PeriodPeriod‑based breakdown with income "transactions".

Account Income Statistics

FieldTypeDescription
totalAmountnumberAccount-level total income calculated.
MONTHLYStatisticsMonthly statistical summary for this account.

Account Income Period

FieldTypeDescription
<Period>array[Account Income Period Data]Keyed by period type. Example uses MONTHLY

Account Income Period Data

FieldTypeDescription
fromDatestringMonth period start.
toDatestringMonth period end.
totalAmountnumberTotal income for the period.
transactionsarray[Income Transaction]Breakdown by income source (see below).

Income Transaction

FieldTypeDescription
incomeTypestringClassified income type (e.g. "Salary", "Gig", "State Pension", "Private Pension", "Benefits", "Other income", "Gambling").
totalAmountnumberTotal for this incomeType for the period.
frequencystringPayment frequency (e.g., "monthly", "weekly", "irregular").
quantitynumberNumber of occurrences in period.
lastPaymentDatestringMost recent payment date (ISO 8601).

Notes:

  • All dates must be ISO 8601 UTC format.
  • The structure is extensible for additional income types/currencies.
  • For monthly statistics and per-period reporting, multiple objects in arrays may be present for rolling periods, currencies, or new income sources.
  • Amounts use the corresponding currency code at each level.