Skip to content

Data API Migration Guide

Migrating from v1.4.0 to v2.0.0

This document describes the changes introduced in version 2.0.0 of the Adatree Data API. It covers new endpoints, deprecated endpoints, schema changes, and the steps you need to take to migrate your integration.


Breaking changes (Fees, Discounts, Rate Tiers) and additive change (Instalments) affect two endpoints:

PathOperationResponse SchemaAffected Sub-Schemas
GET /data/banking/accountsgetBankingAccountsBankingAccountListBankingAccountDetailfees[] (BankingProductFee → BankingProductDiscount), depositRates[].tiers[] (BankingProductRateTierV3), lendingRates[].tiers[] (BankingProductRateTierV3), instalments (new)
GET /data/banking/productsgetBankingProductsBankingProductListBankingProductDetailfees[] (BankingProductFee → BankingProductDiscount), depositRates[].tiers[] (BankingProductRateTierV3), lendingRates[].tiers[] (BankingProductRateTierV3), instalments (new)

All other data API paths (transactions, payees, direct-debits, scheduled-payments, balances, energy endpoints) do not embed product reference data and are unaffected by these breaking changes.


FieldSchemaPurpose
BankingProductDetail.instalmentsBankingProductDetailInstalment options for lending products
SchemaOld StructureNew Structure
BankingProductFeeFlat fields: amount, balanceRate, transactionRate, accruedRate, accrualFrequencyDiscriminator feeMethodUType + nested fixedAmount/rateBased/variable
BankingProductDiscountFlat fields: amount, balanceRate, transactionRate, accruedRate, feeRateDiscriminator discountMethodUType + nested fixedAmount/rateBased
BankingProductRateTierV3Numeric minimumValue/maximumValue; singular applicabilityConditionsString minimumValueString (required)/maximumValueString; array applicabilityConditionList
SchemasStatus
QueryPlanIds, QueryPlanTypes, QueryPlanFuelTypes, QueryPlanEffective, QueryPlanUpdatedSinceRemoved in v2.0.0 as they are never referenced in live API

1. Banking Product Fees – Flat Fields Removed

Section titled “1. Banking Product Fees – Flat Fields Removed”

Old (v1.2.0):

{
"name": "Monthly Fee",
"feeType": "PERIODIC",
"amount": "15.00",
"balanceRate": null,
"transactionRate": null,
"accruedRate": null,
"accrualFrequency": null,
"feeMethodUType": "fixedAmount",
"fixedAmount": {
"amount": "15.00"
},
"currency": "AUD"
}

New (v2.0.0):

{
"name": "Monthly Fee",
"feeType": "PERIODIC",
"feeMethodUType": "fixedAmount",
"fixedAmount": {
"amount": "15.00"
},
"currency": "AUD"
}

Fields Removed (required migration):

  • amount (deprecated)
  • balanceRate (deprecated)
  • transactionRate (deprecated)
  • accruedRate (deprecated)
  • accrualFrequency (deprecated)

Required Field Added:

  • feeMethodUType (enum: fixedAmount, rateBased, variable)

Action: Consumers must update JSON parsing to read from feeMethodUType + fixedAmount.amount / rateBased.rate / variable instead of flat fields.


2. Banking Product Discounts – Flat Fields Removed

Section titled “2. Banking Product Discounts – Flat Fields Removed”

Old (v1.2.0):

{
"description": "Loyalty Discount",
"discountType": "BALANCE",
"amount": "0.50",
"balanceRate": null,
"transactionRate": null,
"accruedRate": null,
"feeRate": null,
"discountMethodUType": "fixedAmount",
"fixedAmount": {
"amount": "0.50"
}
}

New (v2.0.0):

{
"description": "Loyalty Discount",
"discountType": "BALANCE",
"discountMethodUType": "fixedAmount",
"fixedAmount": {
"amount": "0.50"
}
}

Fields Removed (required migration):

  • amount (deprecated)
  • balanceRate (deprecated)
  • transactionRate (deprecated)
  • accruedRate (deprecated)
  • feeRate (deprecated)

Required Field Added:

  • discountMethodUType (enum: FIXED_AMOUNT, RATE_BASED)

Action: Consumers must update JSON parsing to read from discountMethodUType + fixedAmount.amount / rateBased.rate instead of flat fields.


3. Banking Product Rate Tiers – Numeric Bounds → String Equivalents

Section titled “3. Banking Product Rate Tiers – Numeric Bounds → String Equivalents”

Old (v1.2.0):

{
"name": "Term 12-24 Months",
"unitOfMeasure": "MONTH",
"minimumValue": 12,
"maximumValue": 24,
"minimumValueString": "12",
"maximumValueString": "24",
"applicabilityConditions": {
"rateApplicabilityType": "OTHER",
"additionalInfo": "..."
},
"applicabilityConditionList": [
{
"rateApplicabilityType": "OTHER",
"additionalInfo": "..."
}
]
}

New (v2.0.0):

{
"name": "Term 12-24 Months",
"unitOfMeasure": "MONTH",
"minimumValueString": "12",
"maximumValueString": "24",
"applicabilityConditionList": [
{
"rateApplicabilityType": "OTHER",
"additionalInfo": "..."
}
]
}

Fields Removed (required migration):

  • minimumValue (numeric, deprecated)
  • maximumValue (numeric, deprecated)
  • applicabilityConditions (singular, deprecated)

Required Field Added:

  • minimumValueString (string, required — no longer optional)

Fields Added:

  • maximumValueString (string)
  • applicabilityConditionList (array of conditions, replaces singular)

Action: Consumers must:

  1. Change numeric parsing of tier bounds to string parsing
  2. Support tiers with non-numeric bounds (e.g., “1 - 2 months”)
  3. Update condition logic to iterate applicabilityConditionList (array) instead of reading singular applicabilityConditions

4. Banking Product Detail – Instalments Field (Additive)

Section titled “4. Banking Product Detail – Instalments Field (Additive)”

Field: BankingProductDetail.instalments (new, optional in v2.0.0)

  • Status: Not present in v1.2.0 (api-specs); added in v2.0.0 (draft)
  • Schema: References existing BankingProductInstalments type
  • Purpose: Specify instalment options available for lending products
  • Action: Consumers can optionally parse; not required for core functionality. SDK regeneration captures this field; code updates optional.

5. Error Response Format – Generator-Level Change

Section titled “5. Error Response Format – Generator-Level Change”

Field: SecuredCdsDataApiError references to EnergyPlanContractV2

  • Change: Wrapped in allOf (was only $ref previously)
  • Impact: Some OpenAPI generators emit inline vs. reference types differently
  • Action: Regenerate SDKs; verify generated code compiles and type structures match expectations

6. Removed Unused Query Parameter Types (Non-Breaking)

Section titled “6. Removed Unused Query Parameter Types (Non-Breaking)”

Schemas in v1.2.0:

  • QueryPlanIds
  • QueryPlanTypes
  • QueryPlanFuelTypes
  • QueryPlanEffective
  • QueryPlanUpdatedSince

Status in v2.0.0: Removed — not present in v2.0.0 spec

Action: No impact on live API; these parameter types were never referenced in active endpoints. Removal is spec cleanup only.


  1. Regenerate SDK from v2.0.0 spec
  2. Update code to use feeMethodUType/discountMethodUType discriminators + nested objects for fees/discounts
  3. Update tier parsing: string bounds + array of conditions
  • Instalments: Parse BankingProductDetail.instalments if present