Customer Characteristics

Summary

Customer Characteristics are designed to give you information about your customers that we can infer from their transactional data. This information can be leveraged for marketing campaigns when considering how best and who to target for various financial products that you may offer.

These characteristics are calculated in the background each time a customer connects a new account, performs a refresh of their data, or new transactions are ingested via the first party ingester.

Retrieve Customer Characteristics

You can retrieve a list of all characteristics of a given customer by hitting the GET characteristics/v1/customer endpoint. We currently have four characteristics live with eight more to follow.

CharacteristicDescription
credit_cardThe customer has made credit card repayments
loanThe customer has made loan repayments (excluding credit cards)
overdraftThe customer has paid overdraft fees
saverThe customer has savings transactions

🚧

Please note, new characteristics will be released and added to this list without a breaking change notice to the API. Your integration with this endpoint should be able to handle this safely.

An example of a successful 200 response can be seen below.

{
  "operation_id": "characteristics_v1_customer_get",
  "data": [
    {
      "type": "credit_card",
      "link": "characteristics/v1/customer/credit_card"
    },
    {
      "type": "loan",
      "link": "characteristics/v1/customer/loan"
    },
    {
      "type": "overdraft",
      "link": "characteristics/v1/customer/overdraft"
    },
    {
      "type": "saver",
      "link": "characteristics/v1/customer/saver"
    }
  ]
}
curl --request GET \
     --url https://api-sandbox.thisisbud.com/characteristics/v1/customer \
     --header 'X-Client-Id: <client_id>' \
     --header 'X-Customer-Id: <customer_id>' \
     --header 'accept: application/json'

The response contains all applicable characteristics for the given customer along with a link to a separate details endpoint for each one.

If you would like to review the transactions that we're taking into consideration when assigning a characteristic to a customer you can follow one of the links to the details endpoints. It's not intended that you need to subsequently hit the details endpoint each time you generate customer characteristics but rather it can be used if you would like to show the associated transactions to characteristics or for testing purposes during your integration with Bud.

An example of the response of the details endpoints can be seen below.

{
  "operation_id": "characteristics_v1_customer_credit_card_get",
  "data": {
    "credit_card_transactions": [
      {
        "transaction_id": "864a3efc-6104-4dde-99a0-c3d91a8bcecf",
        "account_id": "ad7d5904-39ab-4736-b726-5792c7a2146e",
        "description": "CREDIT CARD PAYMENT",
        "provider": "BankOfBud",
        "status": "booked",
        "amount": {
          "value": "1234.56",
          "currency": "USD"
        },
        "date_time": "2023-07-03T10:00:00Z",
        "enrichments": {
          "categories": {
            "l1": {
              "slug": "borrowing_and_loans",
              "confidence": "0.99"
            },
            "l2": {
              "slug": "credit_cards",
              "confidence": "0.99"
            }
          }
        }
      }
    ],
    "credit_card_transaction_totals": [
      {
        "amount": {
          "value": "1234.56",
          "currency": "USD"
        },
        "credit_debit_indicator": "debit"
      }
    ]
  }
}
curl --request GET \
     --url https://api-sandbox.thisisbud.com/characteristics/v1/customer/credit-card \
     --header 'X-Client-Id: <client_id>' \
     --header 'X-Customer-Id: <customer_id>' \
     --header 'accept: application/json'

The details response contains a list of all transactions that have been used to determine the characteristic in addition to a <characteristic>_transaction_totals object with a summed amount of all the transactions along with a credit_debit_indicator.

If you receive an error please consult the error responses guide.

Thresholds

By default, there are no thresholds set against any of the characteristics however you can configure thresholds on a per-characteristic basis for the number_of_transactions and the value_of_transactions.

For example, if you have set a threshold for credit_card of value_of_transactions exceeds $100, this characteristic will not trigger until the total value of credit card transactions exceeds $100. If thresholds are set for both number_of_transactions and the value_of_transactionsthen both thresholds will need to be exceeded for the characteristic to trigger.

If you would like to configure these thresholds you can do so by logging a support request.





If you have any questions, please contact us via the chatbot (bottom-right of screen 👉) or via a support request or check our FAQs.