diff --git a/slate/source/includes/additional.md b/slate/source/includes/additional.md index 0e389c6d..041286ce 100644 --- a/slate/source/includes/additional.md +++ b/slate/source/includes/additional.md @@ -13,6 +13,7 @@ These standards fall into three categories: The Consumer Data Standards currently include the following Candidate Standards: - [Candidate Standards for the Telecommunications sector](./includes/additional/candidates/telco.html) +- [Candidate Standards for Banking Decision Proposal 306](./includes/additional/candidates/dp306/banking-dp306.html) ## Draft Standards diff --git a/slate/source/includes/additional/candidates/dp306/_product_categories-dp306.md b/slate/source/includes/additional/candidates/dp306/_product_categories-dp306.md new file mode 100644 index 00000000..c00946b5 --- /dev/null +++ b/slate/source/includes/additional/candidates/dp306/_product_categories-dp306.md @@ -0,0 +1,28 @@ +## Product Categories + + + +The [Product Category enumeration](#tocSbankingproductcategory) lists the available product categories for categorising products and accounts. These are explained in the following tables: + +**Deposit Products** + +|Enum|Description| +|----|-----------| +|REGULATED_TRUST_ACCOUNTS|This grouping of products includes accounts where funds are held in trust in regulated industries with complex rules embedded on how the products must operate. Industries that require this sort of product include real estate agents, solicitors and conveyancers.| +|TERM_DEPOSITS|This grouping of products includes all accounts where cash is deposited in the account for a set time period with restrictions on when funds can be withdrawn. Includes traditional Term Deposits and specialised deposits with either fixed terms or notice periods for withdrawal of funds.| +|TRANS_AND_SAVINGS_ACCOUNTS|This grouping of products includes all accounts where cash is deposited in the account and is accessible to the customer when they choose. These are given many names on the market including Cash Accounts, Saving Accounts, Transaction Accounts, Current Accounts, Cheque Accounts, Passbook Accounts, etc...| +|TRAVEL_CARDS|This grouping of products includes prepaid cards with multi-currency capabilities.| + + **Lending Products** + +|Enum|Description| +|----|-----------| +|BUSINESS_LOANS|This grouping of products incorporates all types of lending for business purpose that is not a trade finance facility, lease, overdraft, residential mortgage, credit card or margin lending. It includes traditional term loans, bank guarantees and commercial bills. This category would incorporate both secured and unsecured business purpose lending including all business purpose equipment finance that is not covered by a lease.| +|BUY_NOW_PAY_LATER|This grouping of products includes 'Buy Now, Pay Later' products that are used to purchase and immediately receive goods or services after an initial down-payment instalment. A predefined or agreed schedule of a number of interest-free instalment payments is made against the remaining balance over time.| +|CRED_AND_CHRG_CARDS|This grouping of products includes all lending products that are issued for the purpose of allowing a flexible line of credit accessed through use of a card. These may be called various names including Credit Cards, Charge Cards and Store Cards.| +|LEASES|This grouping of products will include all types of leases including Financial Lease, Operating Lease, Sale and leaseback, etc...| +|MARGIN_LOANS|This grouping of products includes all types of margin loans which let you borrow money to invest in traded assets including shares & commodities or in managed funds.| +|OVERDRAFTS|This grouping of products includes all types of lending which allows for the loan amount to be withdrawn, repaid, and redrawn again in any manner and any number of times, until the arrangement expires. These loans may be secured or unsecured, and generally don’t have set / minimum repayment requirements.| +|PERS_LOANS|This grouping of products includes all lending for personal purposes that is not a residential mortgage, credit card or margin lending. These loans may be unsecured loans and term loans for purchase assets used as security such as motor vehicles. These may be called various names including Personal Loans and Car Loans.| +|RESIDENTIAL_MORTGAGES|This grouping of products includes all lending products that are available for the primary purpose of borrowing for the purpose of purchasing or renovating residential property, where a residential property will be used as security. This group will include both fixed, variable & secured overdraft types of product and may include both owner-occupied and investment purpose borrowing.| +|TRADE_FINANCE|This grouping of products includes specialised lending products specifically designed to facilitate domestic & international trade. This includes the issuance of letters of credit, factoring, export credit.| diff --git a/slate/source/includes/additional/candidates/dp306/_product_components-dp306.md b/slate/source/includes/additional/candidates/dp306/_product_components-dp306.md new file mode 100644 index 00000000..bce782c8 --- /dev/null +++ b/slate/source/includes/additional/candidates/dp306/_product_components-dp306.md @@ -0,0 +1,292 @@ +## Product & Account Components + + +

Product Feature Types

+ +Description of the usage of the `featureType` field as it applies to products. + + +|Value|Description|Use of additionalValue Field| +|-----|-----------|----------------------------| +|ADDITIONAL_CARDS|Additional cards can be requested|The maximum number of additional cards. If no maximum then should be set to null| +|BALANCE_TRANSFERS|Balance transfers can be made to the account (eg. for credit cards)|NA| +|BILL_PAYMENT|The product can be attached to an automatic budgeting and bill payment service|Optional name of the service| +|BONUS_REWARDS|Bonus loyalty rewards points are available|Number of points available| +|CARD_ACCESS|A card is available for the product to access funds|Text describing list of card types that this product can be linked to| +|CASHBACK_OFFER | Subject to terms, conditions and eligibility criteria, the product has a cashback offer for opening an account or by spending at a certain retailer. | The amount of the cashback offer (in AUD) | +|COMPLEMENTARY_PRODUCT_DISCOUNTS|Indicates that complementary, discounted offerings (such as gift cards, or discounted travel) is available|Description of the complementary offering| +|EXTRA_DOWN_PAYMENT|An ability to make a larger than usual down-payment to reduce a repayment amount outstanding. This may enable a purchase that would otherwise have been rejected due to exceeding a credit limit|NA| +|DIGITAL_BANKING|Access is available to online banking features for the product|NA| +|DIGITAL_WALLET|A Digital wallet can be attached to the product|The name or brand of the wallet| +|DONATE_INTEREST|Indicates that interest generated from the product can be automatically donated to a charity or community group|NA| +|EXTRA_REPAYMENTS|Indicates that the product has the option to accept extra repayments without incurring additional charges (for example Buy Now, Pay Later (BNPL) or line of credit products may offer the facility to repay instalments on an adhoc basis).|NA| +|FRAUD_PROTECTION | The product includes fraud protection features. | NA | +|FREE_TXNS|A set number of free transactions available per month|The number of free transactions| +|FREE_TXNS_ALLOWANCE|A set amount of transaction fee value that is discounted per month|The amount of transaction fee discounted (in AUD)| +|FUNDS_AVAILABLE_AFTER|Deposited funds are available after a specified time period. This is distinct from a term deposit duration | The specified time period. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations)| +|GUARANTOR | Subject to terms and conditions, the customer may be able to nominate a guarantor during the origination process. | NA | +|INSTALMENT_PLAN | The product has the option to pay for eligible purchases over time with a set number of payments. | NA | +|INSURANCE|Insurance is provided as an additional feature of the product|Text description of the type of insurance (e.g. Travel Insurance)| +|INTEREST_FREE|Interest free period for purchases|Interest free period. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations)| +|INTEREST_FREE_TRANSFERS|Interest free period for balance transfers|Interest free period. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations)| +|LOYALTY_PROGRAM|A points based loyalty program is available|Name of the loyalty program| +|MAX_BALANCE|A maximum balance is defined for the product | The maximum balance in AmountString format| +|MAX_LIMIT|A maximum limit exists (such as a maximum loan balance denoting the borrowable amount or maximum allowable credit limit) | The maximum limit in AmountString format| +|MAX_TXNS|A maximum number of transactions per month is defined for the product | The maximum number of transactions| +|MIN_BALANCE|A minimum balance is required for the product | The minimum balance in AmountString format| +|MIN_LIMIT|A minimum limit exists (such as a minimum loan balance denoting the borrowable amount or minimum credit limit) | The minimum limit in AmountString format| +|NOTIFICATIONS|Advanced notifications are available for the product|Description of the notification capability| +|NPP_ENABLED|An account of this product type can be used to receive funds as a result of a BSB/Number based NPP payment|NA| +|NPP_PAYID|An account of this product type can be used as the target of an NPP PayID|NA| +|OFFSET|An offset account can be connected to the product|NA| +|OTHER|Another feature that can not be included in any of the other categories. The `additionalInfo` field is mandatory for this type|NA| +|OVERDRAFT|An overdraft can be applied for|NA| +|REDRAW|Redraw of repaid principal above minimum required is available|NA| +|RELATIONSHIP_MANAGEMENT | Relationship management is available for eligible customers. | NA | +|UNLIMITED_TXNS|Unlimited free transactions available|NA| + + + + +

Product Constraint Types

+ +Description of the usage of the `constraintType` field as it applies to products. + +|Value|Description|Use of additionalValue Field| +|-----|-----------|----------------------------| +|MAX_BALANCE|A maximum balance is required for the product|The maximum balance in AmountString format| +|MAX_LIMIT|A maximum limit exists (such as a maximum loan balance denoting the borrowable amount or maximum allowable credit limit)|The maximum limit in AmountString format| +|MIN_BALANCE|A minimum balance is required for the product|The minimum balance in AmountString format| +|MIN_LIMIT|A minimum limit exists (such as a minimum loan balance denoting the borrowable amount or minimum credit limit)|The minimum limit in AmountString format| +|OPENING_BALANCE|An opening balance is required for the product|The minimum opening balance in AmountString format| +|OTHER|Another constraint that can not be included in any of the other categories. The `additionalInfo` field is mandatory for this type|NA| + + + + +

Product Eligibility Types

+ +Description of the usage of the `eligibilityType` field as it applies to products. + +|Value|Description|Use of additionalValue Field| +|-----|-----------|----------------------------| +|BUSINESS|Only business may apply for the account|NA| +|EMPLOYMENT_STATUS|An eligibility constraint based on employment status applies|A description of the status required| +|MAX_AGE|Only customers younger than a maximum age may apply|The maximum age in years| +|MIN_AGE|Only customers older than a minimum age may apply|The minimum age in years| +|MIN_INCOME|The customer must have an income greater than a specified threshold to obtain the product|Minimum income in AmountString format| +|MIN_TURNOVER|Only a business with greater than a minimum turnover may apply|Minimum turnover in AmountString format| +|NATURAL_PERSON|The customer must be a natural person rather than another legal entity|NA| +|OTHER|Another eligibility criteria exists as described in the `additionalInfo` field (if this option is specified then the `additionalInfo` field is mandatory)|NA| +|PENSION_RECIPIENT|Only a recipient of a government pension may apply for the product|Optional. If present, MUST contain a description of which pensions qualify.| +|RESIDENCY_STATUS|An eligibility constraint based on residency status applies|A description of the status required| +|STAFF|Only a staff member of the provider may apply|NA| +|STUDENT|Only students may apply for the product|Optional. If present, MUST contain a description of who qualifies as a student, e.g. do apprentices qualify?.| + + + + +

Product Fee Categories

+ +Description of the usage of the `feeCategory` field as it applies to products. Used to classify Product Fee Types. + +|Value|Description| +|-----|-----------| +| APPLICATION | Fees associated with the application or origination of a product | +| ATM | Fees associated with the usage of ATMs | +| BRANCH | Fees associated with in-branch or over-the-counter interactions | +| BUY_NOW_PAY_LATER | Fees associated with a Buy Now, Pay Later product or feature | +| CARD | Fees associated with the usage of cards | +| CHEQUE | Fees associated with cheques or cheque books | +| CLOSURE | Fees associated with the closure of an account or service | +| CORRESPONDENCE | Fees associated with correspondence, including paper statements or other types of document requests | +| FOREIGN_EXCHANGE | Fees associated with foreign currency exchange services | +| OTHER | Another fee category that can not be included in any of the other categories. The `additionalInfo` field is mandatory for this type | +| POS | Fees associated with value-added Point-Of-Sale (POS) services | +| SERVICE | Fees associated with general product or account service and maintenance requests | +| TELEGRAPHIC_TRANSFER | Fees associated with SWIFT or 'Telegraphic Transfer' transactions | +| TELEPHONE_BANKING | Fees associated with services available via telephone banking | +| TERMS_CONDITIONS | Fees associated with breaches or requests for variations to contracts or other product terms and conditions | +| THIRD_PARTY | Fees associated with services that incur third-party costs | +| TRANSACTION | Fees associated with making transactions that are not aligned to other more specific categories | + + + + +

Product Fee Types

+ +Description of the usage of the `feeType` field as it applies to products. + +|Value|Description|Use of additionalValue Field| +|-----|-----------|----------------------------| +|CASH_ADVANCE|A fee associated with a cash advance |NA| +|DEPOSIT|A fee associated with making a deposit|NA| +|DISHONOUR|A fee associated with a dishonour |NA| +|ENQUIRY|A fee associated with an enquiry, including a balance enquiry |NA| +|EVENT|A fee in relation to a particular event (e.g. ordering a new card, viewing a balance or stopping a cheque)|NA| +|EXIT|A fee for closing the product|NA| +|OTHER|Another fee that can not be included in any of the other categories. The `additionalInfo` field is mandatory for this type |NA| +|PAYMENT|A fee associated with making a payment|NA| +|PAYMENT_LATE|A fee associated with making a payment after a due date|Number of days late, after which the associated fee will be applied | +|PERIODIC|A periodic fee such as a monthly account servicing fee|The period of charge. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations)| +|PURCHASE|A fee associated with making a purchase at a merchant|NA| +|REPLACEMENT|A fee associated with a receiving a replacement, including cards, cheques, statements, security tokens |NA| +|TRANSACTION|A fee associated with any transaction (incorporates `WITHDRAWAL`, `DEPOSIT`, `PAYMENT` and `PURCHASE`)|NA| +|UPFRONT|A fee paid at the beginning of the product lifecycle, such as an establishment fee, loyalty program fee or application fee|NA| +|UPFRONT_PER_PLAN|A fee paid at the creation of a new payment plan, such as an instalment plan|NA| +|VARIATION|A fee associated with a request for a variation, including to an existing process, instruction or terms |NA| +|WITHDRAWAL|A fee associated with making a withdrawal|NA| + + + + +

Product Discount Types

+ +Description of the usage of the `discountType` field as it applies to products. + +|Value|Description|Use of additionalValue Field| +|-----|-----------|----------------------------| +|BALANCE|Discount on a fee for maintaining a set balance. As the discount applies to a fee the period is the same as for the fee|The minimum balance in AmountString format| +|DEPOSITS|Discount for depositing a certain amount of money in a period. As the discount applies to a fee the period is the same as for the fee|The minimum deposit amount in AmountString format| +|ELIGIBILITY_ONLY|Discount applies based on customer eligibility (eligibility array must be populated)|N/A| +|FEE_CAP|The `amount`, `balanceRate`, `transactionRate`, `accruedRate` or `feeRate` fields of the discount represent the maximum amount charged in a time period|The time period for which the fee cap applies. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations)| +|PAYMENTS|Discount for outbound payments from the account under a certain amount of money in a period. As the discount applies to a fee the period is the same as for the fee|The payment threshold amount in AmountString format| + + + + +

Product Discount Eligibility Types

+ +Description of the usage of the `discountEligibilityType` field as it applies to products. + +|Value|Description|Use of additionalValue Field| +|-----|-----------|----------------------------| +|BUSINESS|A business or other non-person legal entity|NA| +|EMPLOYMENT_STATUS|An eligibility constraint based on employment status applies|A description of the status required| +|INTRODUCTORY|The discount is only available during an introductory period|The period of time for the introductory discount. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations)| +|MAX_AGE|Only customers younger than a maximum age receive the discount|The maximum age in years +|MIN_AGE|Only customers older than a minimum age receive the discount|The minimum age in years| +|MIN_INCOME|The customer must have an income greater than a specified threshold to obtain the discount|Minimum income in AmountString format| +|MIN_TURNOVER|Only a business with greater than a minimum turnover is eligible|Minimum turnover in AmountString format| +|NATURAL_PERSON|The customer must be a natural person rather than another legal entity|NA| +|OTHER|Another eligibility criteria exists as described in the `additionalInfo` field (if this option is specified then the `additionalInfo` field is mandatory)|NA| +|PENSION_RECIPIENT|Only a recipient of a government pension may receive the discount|Optional. If present, MUST contain a description of which pensions qualify.| +|RESIDENCY_STATUS|An eligibility constraint based on residency status applies|A description of the status required| +|STAFF|Only a staff member of the provider may receive the discount|NA| +|STUDENT|Only students may receive the discount|Optional. If present, MUST contain a description of who qualifies as a student, e.g. do apprentices qualify?.| + + + + +

Product Deposit Rate Types

+ +Description of the usage of the `depositRateType` field as it applies to products. + + + + +A deposit product is expected to present a single Base rate corresponding to relevant selection criteria including the rate `tiers` and `additionalValue`, where applicable. + +Value | Description | Use of additionalValue Field +-- | -- | -- +FIXED | Fixed rate for a period of time | The period of time fixed. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) +FLOATING | A floating rate is relatively fixed but still adjusts under specific circumstances | Details of the float parameters +MARKET_LINKED | A rate that is linked to a specific market, commodity or asset class | Details of the market linkage +VARIABLE | A variable base rate for the product | NA + + + + + +A product may have zero, one, or multiple adjustment rates that are taken to apply to a Base rate. + +Value | Description | Use of additionalValue Field +-- | -- | -- +BONUS | A bonus rate available by meeting specific criteria. A description of the bonus rate, including criteria to obtain the bonus is to be provided in the `additionalInfo` field, or `applicabilityConditions` where relevant. If the bonus is obtained by originating or maintaining a bundle instead of a standalone product, the bundle name is specified in the associated `adjustmentBundle` field. | The period of time for the bonus rate if applicable. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) + + + + +

Product Lending Rate Types

+ +Description of the usage of the `lendingRateType` field as it applies to products. + + + + + +A lending product is expected to present a single Base rate corresponding to relevant selection criteria including the rate `tiers` and `additionalValue`, where applicable. + +Card products may have two or more base rates, including `CASH_ADVANCE` and `PURCHASE` as they may apply to different transaction types within an account. The `PURCHASE` lendingRateType is considered the rate commonly applicable to a card. + +Value | Description | Use of additionalValue Field +-- | -- | -- +BALANCE_TRANSFER | Specific rate applied to balance transfers to the account. This is expected to apply to products in the `CRED_AND_CHRG_CARDS` category only | NA +CASH_ADVANCE | Specific rate applied to cash advances from the account. This is expected to apply to products in the `CRED_AND_CHRG_CARDS` category only | NA +FEE | A fee-based amount rather than a rate applies to the account | NA +FIXED | Fixed rate for a period of time | The period of time fixed. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) +FLOATING | A floating rate is relatively fixed but still adjusts under specific circumstances | Details of the float parameters +MARKET_LINKED | A rate that is linked to a specific market, commodity or asset class | Details of the market linkage +PURCHASE | Specific rate applied to purchases from the account. This is expected to apply to products in the `CRED_AND_CHRG_CARDS` category only | NA +VARIABLE | A variable base rate for the product | NA + + + + + + +A product may have zero, one, or multiple adjustment rates that are taken to apply to a Base rate. + +Value | Description | Use of additionalValue Field +-- | -- | -- +DISCOUNT | A discount rate reduces the interest payable. A description of the discount rate is to be provided in the `additionalInfo` field. Where applicable, the discount is applied to the rate specified in the `adjustmentToBase` field. If the discount is obtained by originating or maintaining a bundle instead of a standalone product, the bundle name is specified in the associated `adjustmentBundle` field. | The period of time for the discounted rate if applicable. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) +PENALTY | A penalty rate increases the interest payable. A description of the penalty rate is to be provided in the `additionalInfo` field. Where applicable, the penalty is applied to the rate specified in the `adjustmentToBase` field. | The period of time for the penalty rate if applicable. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) + + + + +

Banking Term Deposit Account Types

+ +Description of the usage of the `maturityInstructions` field as it applies to accounts. + +|Value|Description|Use of additionalValue Field| +|-----|-----------|----------------------------| +|HOLD_ON_MATURITY|Funds are held in a facility or similar mechanism managed by the data holder for a period of time until the customer provides instructions or the maximum period of the hold has elapsed. Funds may be renewed or withdrawn upon instructions by the customer|NA| +|PAID_OUT_AT_MATURITY|Funds are to be paid out at maturity|NA| +|ROLLED_OVER|Funds are to be rolled over at maturity|NA| + + + + +

Rate and Tier Applicability Types

+ +Description of the usage of the `rateApplicabilityType` field as it applies to products. + +|Value|Description|Use of additionalValue Field| +|-----|-----------|----------------------------| +| DEPOSITS_MIN | When a minimum number of deposits is made in a month, or the month prior | Minimum number of deposits | +| DEPOSITS_MIN_AMOUNT | When a minimum deposit amount is made in a month, or the month prior | Minimum deposit in AmountString format | +| DEPOSIT_BALANCE_INCREASED | When the overall balance of the account, excluding interest, has increased over the month prior | Minimum amount in AmountString format | +| EXISTING_CUST | Applicable to existing customers of the brand | NA | +| NEW_ACCOUNTS | Applicable to new accounts | NA | +| NEW_CUSTOMER | Applicable to new customers to the brand | NA | +| NEW_CUSTOMER_TO_GROUP | Applicable to new customers to a group of brands | NA | +| ONLINE_ONLY | Applicable to accounts originated online | NA | +| OTHER | Applicable under other conditions. The `additionalInfo` field is mandatory for this type | NA | +| PURCHASES_MIN | When a minimum number of purchases is made and settled in a month, or the month prior | Minimum number of purchases | +| WITHDRAWALS_MAX | Applicable up to a maximum number of withdrawals in a month, or the month prior | Maximum number of withdrawals | +| WITHDRAWALS_MAX_AMOUNT | Applicable up to a maximum amount withdrawn in a month, or the month prior | Maximum withdrawn in AmountString format | + + + + +

Plan Feature Types

+ +Description of the usage of the `planFeatureType` field as it applies to card plans. + +|Value|Description|Use of additionalValue Field| +|-----|-----------|----------------------------| +| BALANCE_TRANSFER_ENDS_INTEREST_FREE | A balance transfer will end any existing interest-free period on the plan | NA | +| INSTALMENTS | The plan supports converting purchases into instalments | NA | +| INTEREST_FREE | The plan offers an interest-free period | Interest free period. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) | + diff --git a/slate/source/includes/additional/candidates/dp306/banking-dp306.html.md b/slate/source/includes/additional/candidates/dp306/banking-dp306.html.md new file mode 100644 index 00000000..53ead91b --- /dev/null +++ b/slate/source/includes/additional/candidates/dp306/banking-dp306.html.md @@ -0,0 +1,18 @@ +--- +title: DSB Candidate Standard - Banking Decision Proposal 306 + +language_tabs: + - examples: Non-normative Examples + - diff: Version Delta + +toc_footers: + - Consumer Data Standards + +includes: + - additional/candidates/dp306/banking-dp306_apis + - cds_banking_dp306 + - additional/candidates/dp306/_product_categories-dp306 + - additional/candidates/dp306/_product_components-dp306 + +search: true +--- diff --git a/slate/source/includes/additional/candidates/dp306/banking-dp306_apis.md.erb b/slate/source/includes/additional/candidates/dp306/banking-dp306_apis.md.erb new file mode 100644 index 00000000..a8050437 --- /dev/null +++ b/slate/source/includes/additional/candidates/dp306/banking-dp306_apis.md.erb @@ -0,0 +1,70 @@ +# Banking APIs + +<%= partial "includes/additional/candidates/candidate_header.md" %> + +This specification defines the APIs for Data Holders exposing Banking endpoints. + + + + +
Banking OpenAPI Specification (JSON)
Banking OpenAPI Specification (YAML)
+ +```diff +Changed the `cardArt` array to a `cardOption` object to provide additional card details in 'Get Products', 'Get Product Detail' and 'Get Account Detail'. + +Added the `FEE` `lendingRateType` value to support lending products that have a fee-based rather than rate-based cost. This type may be expected to align to the new `PRINCIPAL_AND_FEE` `repaymentType`. + +Added the `BALANCE_TRANSFER` `lendingRateType` value to extend support for credit card plan detail. + +Updated the `creditCard` schema in 'Get Account Detail' to allow an array of plan types, each with specific rates, repayments, adjustments and features. + +Added `revertRate`, `revertProductId`, `rateStartDate` and `rateEndDate` fields to respective lending rate schemas to support 'revert' rate details. + +Added `referenceRate` to multiple lending and deposit rate schemas. + +Added `adjustmentToBase` and `adjustmentBundle` fields to the 'BankingProductLendingRate' and 'BankingProductDepositRate' schemas. The `adjustmentToBase` field is provided to allow an adjustment rate type to specify which base rate type the adjustment applies to, where many may be offered for a product. + +Updated and added the `applicabilityConditions` field in the 'BankingProductLendingRate', 'BankingProductDepositRate' and 'BankingProductRateTier' schemas. + +Added the `applicationType` field to clarify whether an associated `applicationFrequency` value is to be expected. + +Updated the description of the `features` property of 'Get Product Detail' and 'Get Account Detail' to clarify that the schema also supports providing details of any key operational product limitations. + +Updated the description of the `constraints` property of 'Get Product Detail' to clarify that the schema is only intended to provide details of constraints on application for the product. + +Added new `featureType` values to support operational limitations and the `OTHER` `constraintType` to allow additional detail to be provided. + +Added new `feeCategory` field and new `feeType` values to improve classification and comparison of fees. + +Updated the 'BankingProductFee' schema to separate different fee types by UType and added minimum and maximum fee details and `feeCap` fields. + +Incorporated rate detail into the 'Get Account Detail' schemas to provide specific rate fields separated from the generic Product Reference rate objects. + +Extended the `termDeposit` schema in 'Get Account Detail' to allow each deposit to be specified with specific rates and terms. + +Updated the 'adjustment' rate type values to remove the `INTRODUCTORY`, `BUNDLE_BONUS`, `BUNDLE_DISCOUNT_FIXED`, `BUNDLE_DISCOUNT_VARIABLE` options. Time and bundle-based rate detail will be supported through new fields to capture that detail: `adjustmentBundle`, `adjustmentPeriod` and `adjustmentEndDate`, leaving the `additionalValue` field available for other detail where necessary. + +Added a `deposit` schema in 'Get Account Detail' to provide rate detail for general deposit structures without term deposit maturity detail. + +Removed the `specificAccountUType` field in 'Get Account Detail' to clarify that multiple types may be present in a single account. + +Updated the 'Use of additionalValue Field' descriptions for the `PENSION_RECIPIENT` and `STUDENT` 'Product Eligibility' and 'Product Discount Eligibility' types. + +Updated the description of the `comparisonRate` field to clarify how it could be interpreted when associated with an adjustment rate type. + +Updated the description of the rate tier `unitOfMeasure` field to clarify the format of the associated values, including specifying `PERCENT` values as a RateString. + +This candidate incorporates the latest Non-Bank Lending (NBL) Draft changes including the `BUY_NOW_PAY_LATER` product category value, the `instalments` object, and related feature and fee types. The endpoint versions incremented due to changes related to the NBL Draft only, are: + - Get Accounts (v3) + - Get Bulk Balances (v2) + - Get Bulk Direct Debits (v2) + - Get Scheduled Payments Bulk (v3). + - Other NBL changes affecting the Register APIs are only shown in the NBL Draft. + +The endpoint versions incremented primarily for Decision Proposal 306, but also including NBL detail are: + - Get Account Detail (v4) + - Get Products (v4) + - Get Product Detail (v5). + +Corrected minor typos and updated documentation formatting. +``` diff --git a/slate/source/includes/obsolete/get-account-detail-v3.html.md b/slate/source/includes/obsolete/get-account-detail-v3.html.md new file mode 100644 index 00000000..d1c1be24 --- /dev/null +++ b/slate/source/includes/obsolete/get-account-detail-v3.html.md @@ -0,0 +1,1664 @@ +--- +title: Get Account Detail v3 + +#language_tabs: # must be one of https://git.io/vQNgJ +# - shell +# - javascript + +toc_footers: + - Consumer Data Standards + +search: false +--- + +# Get Account Detail V3 +This page documents the obsolete version 3 of the Get Account Detail endpoint. + +This version is to be ceased to be called by data recipients by **Date TBC** and can be decommissioned by data holders as of that date. + + + +## Get Account Detail + + + +> Code samples + +```http +GET https://data.holder.com.au/cds-au/v1/banking/accounts/{accountId} HTTP/1.1 +Host: data.holder.com.au +Accept: application/json +x-v: string +x-min-v: string +x-fapi-interaction-id: string +x-fapi-auth-date: string +x-fapi-customer-ip-address: string +x-cds-client-headers: string + +``` + +```javascript--nodejs +const fetch = require('node-fetch'); + +const headers = { + 'Accept':'application/json', + 'x-v':'string', + 'x-min-v':'string', + 'x-fapi-interaction-id':'string', + 'x-fapi-auth-date':'string', + 'x-fapi-customer-ip-address':'string', + 'x-cds-client-headers':'string' + +}; + +fetch('https://data.holder.com.au/cds-au/v1/banking/accounts/{accountId}', +{ + method: 'GET', + + headers: headers +}) +.then(function(res) { + return res.json(); +}).then(function(body) { + console.log(body); +}); + +``` + +`GET /banking/accounts/{accountId}` + +Obtain detailed information on a single account. + +Obsolete versions: [v1](../../includes/obsolete/get-account-detail-v1.html), [v2](../../includes/obsolete/get-account-detail-v2.html) + +###Endpoint Version +| | | +|---|--| +|Version|**3** + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|accountId|path|[ASCIIString](#common-field-types)|mandatory|A tokenised identifier for the account which is unique but not shareable| +|x-v|header|string|mandatory|Version of the API end point requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers)| +|x-min-v|header|string|optional|Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.| +|x-fapi-interaction-id|header|string|optional|An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| +|x-fapi-auth-date|header|string|conditional|The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.| +|x-fapi-customer-ip-address|header|string|optional|The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.| +|x-cds-client-headers|header|[Base64](#common-field-types)|conditional|The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.| + +> Example responses + +> 200 Response + +```json +{ + "data": { + "accountId": "string", + "creationDate": "string", + "displayName": "string", + "nickname": "string", + "openStatus": "CLOSED", + "isOwned": true, + "accountOwnership": "UNKNOWN", + "maskedNumber": "string", + "productCategory": "BUSINESS_LOANS", + "productName": "string", + "bsb": "string", + "accountNumber": "string", + "bundleName": "string", + "specificAccountUType": "creditCard", + "termDeposit": [ + { + "lodgementDate": "string", + "maturityDate": "string", + "maturityAmount": "string", + "maturityCurrency": "string", + "maturityInstructions": "HOLD_ON_MATURITY" + } + ], + "creditCard": { + "minPaymentAmount": "string", + "paymentDueAmount": "string", + "paymentCurrency": "string", + "paymentDueDate": "string" + }, + "loan": { + "originalStartDate": "string", + "originalLoanAmount": "string", + "originalLoanCurrency": "string", + "loanEndDate": "string", + "nextInstalmentDate": "string", + "minInstalmentAmount": "string", + "minInstalmentCurrency": "string", + "maxRedraw": "string", + "maxRedrawCurrency": "string", + "minRedraw": "string", + "minRedrawCurrency": "string", + "offsetAccountEnabled": true, + "offsetAccountIds": [ + "string" + ], + "repaymentType": "INTEREST_ONLY", + "repaymentFrequency": "string" + }, + "depositRate": "string", + "lendingRate": "string", + "depositRates": [ + { + "depositRateType": "BONUS", + "rate": "string", + "calculationFrequency": "string", + "applicationFrequency": "string", + "tiers": [ + { + "name": "string", + "unitOfMeasure": "DAY", + "minimumValue": 0, + "maximumValue": 0, + "rateApplicationMethod": "PER_TIER", + "applicabilityConditions": { + "additionalInfo": "string", + "additionalInfoUri": "string" + }, + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "lendingRates": [ + { + "lendingRateType": "BUNDLE_DISCOUNT_FIXED", + "rate": "string", + "comparisonRate": "string", + "calculationFrequency": "string", + "applicationFrequency": "string", + "interestPaymentDue": "IN_ADVANCE", + "repaymentType": "INTEREST_ONLY", + "loanPurpose": "INVESTMENT", + "tiers": [ + { + "name": "string", + "unitOfMeasure": "DAY", + "minimumValue": 0, + "maximumValue": 0, + "rateApplicationMethod": "PER_TIER", + "applicabilityConditions": { + "additionalInfo": "string", + "additionalInfoUri": "string" + }, + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "features": [ + { + "featureType": "ADDITIONAL_CARDS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "isActivated": true + } + ], + "fees": [ + { + "name": "string", + "feeType": "DEPOSIT", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "accrualFrequency": "string", + "currency": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "discounts": [ + { + "description": "string", + "discountType": "BALANCE", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "feeRate": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "eligibility": [ + { + "discountEligibilityType": "BUSINESS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ] + } + ] + } + ], + "addresses": [ + { + "addressUType": "paf", + "simple": { + "mailingName": "string", + "addressLine1": "string", + "addressLine2": "string", + "addressLine3": "string", + "postcode": "string", + "city": "string", + "state": "string", + "country": "AUS" + }, + "paf": { + "dpid": "string", + "thoroughfareNumber1": 0, + "thoroughfareNumber1Suffix": "string", + "thoroughfareNumber2": 0, + "thoroughfareNumber2Suffix": "string", + "flatUnitType": "string", + "flatUnitNumber": "string", + "floorLevelType": "string", + "floorLevelNumber": "string", + "lotNumber": "string", + "buildingName1": "string", + "buildingName2": "string", + "streetName": "string", + "streetType": "string", + "streetSuffix": "string", + "postalDeliveryType": "string", + "postalDeliveryNumber": 0, + "postalDeliveryNumberPrefix": "string", + "postalDeliveryNumberSuffix": "string", + "localityName": "string", + "postcode": "string", + "state": "string" + } + } + ] + }, + "links": { + "self": "string" + }, + "meta": {} +} +``` + +

Responses

+ +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success|[ResponseBankingAccountByIdV3](#schemacdr-banking-apiresponsebankingaccountbyidv3)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| +|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| +|406|[Not Acceptable](https://tools.ietf.org/html/rfc7231#section-6.5.6)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| + +### Response Headers + +|Status|Header|Type|Format|Description| +|---|---|---|---|---| +|200|x-v|string||The [version](#response-headers) of the API end point that the data holder has responded with.| +|200|x-fapi-interaction-id|string||An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| +|400|x-fapi-interaction-id|string||An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| +|404|x-fapi-interaction-id|string||An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| +|406|x-fapi-interaction-id|string||An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| + + + + + + + +

Schemas

+ + + + +

BankingProductFeatureV2

+ + + +```json +{ + "featureType": "ADDITIONAL_CARDS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|featureType|string|mandatory|The type of feature described| +|additionalValue|string|conditional|Generic field containing additional information relevant to the [featureType](#tocSproductfeaturetypedoc) specified. Whether mandatory or not is dependent on the value of the [featureType.](#tocSproductfeaturetypedoc)| +|additionalInfo|string|conditional|Display text providing more information on the feature. Mandatory if the [feature type](#tocSproductfeaturetypedoc) is set to OTHER| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this feature| + +#### Enumerated Values + +|Property|Value| +|---|---| +|featureType|ADDITIONAL_CARDS| +|featureType|BALANCE_TRANSFERS| +|featureType|BILL_PAYMENT| +|featureType|BONUS_REWARDS| +|featureType|CARD_ACCESS| +|featureType|CASHBACK_OFFER| +|featureType|COMPLEMENTARY_PRODUCT_DISCOUNTS| +|featureType|DIGITAL_BANKING| +|featureType|DIGITAL_WALLET| +|featureType|DONATE_INTEREST| +|featureType|EXTRA_REPAYMENTS| +|featureType|FRAUD_PROTECTION| +|featureType|FREE_TXNS| +|featureType|FREE_TXNS_ALLOWANCE| +|featureType|GUARANTOR| +|featureType|INSURANCE| +|featureType|INSTALMENT_PLAN| +|featureType|INTEREST_FREE| +|featureType|INTEREST_FREE_TRANSFERS| +|featureType|LOYALTY_PROGRAM| +|featureType|NOTIFICATIONS| +|featureType|NPP_ENABLED| +|featureType|NPP_PAYID| +|featureType|OFFSET| +|featureType|OTHER| +|featureType|OVERDRAFT| +|featureType|REDRAW| +|featureType|RELATIONSHIP_MANAGEMENT| +|featureType|UNLIMITED_TXNS| + + + +

BankingProductFee

+ + + +```json +{ + "name": "string", + "feeType": "DEPOSIT", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "accrualFrequency": "string", + "currency": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "discounts": [ + { + "description": "string", + "discountType": "BALANCE", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "feeRate": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "eligibility": [ + { + "discountEligibilityType": "BUSINESS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ] + } + ] +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|name|string|mandatory|Name of the fee| +|feeType|string|mandatory|The type of fee| +|amount|[AmountString](#common-field-types)|conditional|The amount charged for the fee. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* "VARIABLE" is supplied| +|balanceRate|[RateString](#common-field-types)|conditional|A fee rate calculated based on a proportion of the balance. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* "VARIABLE" is supplied.| +|transactionRate|[RateString](#common-field-types)|conditional|A fee rate calculated based on a proportion of a transaction. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* "VARIABLE" is supplied| +|accruedRate|[RateString](#common-field-types)|conditional|A fee rate calculated based on a proportion of the calculated interest accrued on the account. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* "VARIABLE" is supplied| +|accrualFrequency|[ExternalRef](#common-field-types)|optional|The indicative frequency with which the fee is calculated on the account. Only applies if balanceRate or accruedRate is also present. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)| +|currency|[CurrencyString](#common-field-types)|optional|The currency the fee will be charged in. Assumes AUD if absent| +|additionalValue|string|conditional|Generic field containing additional information relevant to the [feeType](#tocSproductfeetypedoc) specified. Whether mandatory or not is dependent on the value of [feeType](#tocSproductfeetypedoc)| +|additionalInfo|string|optional|Display text providing more information on the fee| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this fee| +|discounts|[[BankingProductDiscount](#schemacdr-banking-apibankingproductdiscount)]|optional|An optional list of discounts to this fee that may be available| + +#### Enumerated Values + +|Property|Value| +|---|---| +|feeType|DEPOSIT| +|feeType|EVENT| +|feeType|EXIT| +|feeType|PAYMENT| +|feeType|PERIODIC| +|feeType|PURCHASE| +|feeType|TRANSACTION| +|feeType|UPFRONT| +|feeType|VARIABLE| +|feeType|WITHDRAWAL| + + + +

BankingProductDiscount

+ + + +```json +{ + "description": "string", + "discountType": "BALANCE", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "feeRate": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "eligibility": [ + { + "discountEligibilityType": "BUSINESS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ] +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|description|string|mandatory|Description of the discount| +|discountType|string|mandatory|The type of discount. See the next section for an overview of valid values and their meaning| +|amount|[AmountString](#common-field-types)|conditional|Dollar value of the discount. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory.| +|balanceRate|[RateString](#common-field-types)|conditional|A discount rate calculated based on a proportion of the balance. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee| +|transactionRate|[RateString](#common-field-types)|conditional|A discount rate calculated based on a proportion of a transaction. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory| +|accruedRate|[RateString](#common-field-types)|conditional|A discount rate calculated based on a proportion of the calculated interest accrued on the account. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee| +|feeRate|[RateString](#common-field-types)|conditional|A discount rate calculated based on a proportion of the fee to which this discount is attached. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee| +|additionalValue|string|conditional|Generic field containing additional information relevant to the [discountType](#tocSproductdiscounttypedoc) specified. Whether mandatory or not is dependent on the value of [discountType](#tocSproductdiscounttypedoc)| +|additionalInfo|string|optional|Display text providing more information on the discount| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this discount| +|eligibility|[[BankingProductDiscountEligibility](#schemacdr-banking-apibankingproductdiscounteligibility)]|conditional|Eligibility constraints that apply to this discount. Mandatory if ``discountType`` is ``ELIGIBILITY_ONLY``.| + +#### Enumerated Values + +|Property|Value| +|---|---| +|discountType|BALANCE| +|discountType|DEPOSITS| +|discountType|ELIGIBILITY_ONLY| +|discountType|FEE_CAP| +|discountType|PAYMENTS| + +

BankingProductDiscountEligibility

+ + + +```json +{ + "discountEligibilityType": "BUSINESS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|discountEligibilityType|string|mandatory|The type of the specific eligibility constraint for a discount| +|additionalValue|string|conditional|Generic field containing additional information relevant to the [discountEligibilityType](#tocSproductdiscounteligibilitydoc) specified. Whether mandatory or not is dependent on the value of [discountEligibilityType](#tocSproductdiscounteligibilitydoc)| +|additionalInfo|string|conditional|Display text providing more information on this eligibility constraint. Whether mandatory or not is dependent on the value of [discountEligibilityType](#tocSproductdiscounteligibilitydoc)| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this eligibility constraint| + +#### Enumerated Values + +|Property|Value| +|---|---| +|discountEligibilityType|BUSINESS| +|discountEligibilityType|EMPLOYMENT_STATUS| +|discountEligibilityType|INTRODUCTORY| +|discountEligibilityType|MAX_AGE| +|discountEligibilityType|MIN_AGE| +|discountEligibilityType|MIN_INCOME| +|discountEligibilityType|MIN_TURNOVER| +|discountEligibilityType|NATURAL_PERSON| +|discountEligibilityType|OTHER| +|discountEligibilityType|PENSION_RECIPIENT| +|discountEligibilityType|RESIDENCY_STATUS| +|discountEligibilityType|STAFF| +|discountEligibilityType|STUDENT| + +

BankingProductDepositRate

+ + + +```json +{ + "depositRateType": "BONUS", + "rate": "string", + "calculationFrequency": "string", + "applicationFrequency": "string", + "tiers": [ + { + "name": "string", + "unitOfMeasure": "DAY", + "minimumValue": 0, + "maximumValue": 0, + "rateApplicationMethod": "PER_TIER", + "applicabilityConditions": { + "additionalInfo": "string", + "additionalInfoUri": "string" + }, + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|depositRateType|string|mandatory|The type of rate (base, bonus, etc). See the next section for an overview of valid values and their meaning| +|rate|[RateString](#common-field-types)|mandatory|The rate to be applied| +|calculationFrequency|[ExternalRef](#common-field-types)|optional|The period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see applicationFrequency). Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)| +|applicationFrequency|[ExternalRef](#common-field-types)|optional|The period after which the calculated amount(s) (see calculationFrequency) are 'applied' (i.e. debited or credited) to the account. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)| +|tiers|[[BankingProductRateTierV3](#schemacdr-banking-apibankingproductratetierv3)]|optional|Rate tiers applicable for this rate| +|additionalValue|string|conditional|Generic field containing additional information relevant to the [depositRateType](#tocSproductdepositratetypedoc) specified. Whether mandatory or not is dependent on the value of [depositRateType](#tocSproductdepositratetypedoc)| +|additionalInfo|string|optional|Display text providing more information on the rate| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this rate| + +#### Enumerated Values + +|Property|Value| +|---|---| +|depositRateType|BONUS| +|depositRateType|BUNDLE_BONUS| +|depositRateType|FIXED| +|depositRateType|FLOATING| +|depositRateType|INTRODUCTORY| +|depositRateType|MARKET_LINKED| +|depositRateType|VARIABLE| + +

BankingProductLendingRateV2

+ + + +```json +{ + "lendingRateType": "BUNDLE_DISCOUNT_FIXED", + "rate": "string", + "comparisonRate": "string", + "calculationFrequency": "string", + "applicationFrequency": "string", + "interestPaymentDue": "IN_ADVANCE", + "repaymentType": "INTEREST_ONLY", + "loanPurpose": "INVESTMENT", + "tiers": [ + { + "name": "string", + "unitOfMeasure": "DAY", + "minimumValue": 0, + "maximumValue": 0, + "rateApplicationMethod": "PER_TIER", + "applicabilityConditions": { + "additionalInfo": "string", + "additionalInfoUri": "string" + }, + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|lendingRateType|string|mandatory|The type of rate (fixed, variable, etc). See the next section for an overview of valid values and their meaning| +|rate|[RateString](#common-field-types)|mandatory|The rate to be applied| +|comparisonRate|[RateString](#common-field-types)|optional|A comparison rate equivalent for this rate| +|calculationFrequency|[ExternalRef](#common-field-types)|optional|The period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see applicationFrequency). Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)| +|applicationFrequency|[ExternalRef](#common-field-types)|optional|The period after which the calculated amount(s) (see calculationFrequency) are 'applied' (i.e. debited or credited) to the account. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)| +|interestPaymentDue|string|optional|When loan payments are due to be paid within each period. The investment benefit of earlier payments affect the rate that can be offered| +|repaymentType|string|optional|Options in place for repayments. If absent, the lending rate is applicable to all repayment types| +|loanPurpose|string|optional|The reason for taking out the loan. If absent, the lending rate is applicable to all loan purposes| +|tiers|[[BankingProductRateTierV3](#schemacdr-banking-apibankingproductratetierv3)]|optional|Rate tiers applicable for this rate| +|additionalValue|string|conditional|Generic field containing additional information relevant to the [lendingRateType](#tocSproductlendingratetypedoc) specified. Whether mandatory or not is dependent on the value of [lendingRateType](#tocSproductlendingratetypedoc)| +|additionalInfo|string|optional|Display text providing more information on the rate.| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this rate| + +#### Enumerated Values + +|Property|Value| +|---|---| +|lendingRateType|BUNDLE_DISCOUNT_FIXED| +|lendingRateType|BUNDLE_DISCOUNT_VARIABLE| +|lendingRateType|CASH_ADVANCE| +|lendingRateType|DISCOUNT| +|lendingRateType|FIXED| +|lendingRateType|FLOATING| +|lendingRateType|INTRODUCTORY| +|lendingRateType|MARKET_LINKED| +|lendingRateType|PENALTY| +|lendingRateType|PURCHASE| +|lendingRateType|VARIABLE| +|interestPaymentDue|IN_ADVANCE| +|interestPaymentDue|IN_ARREARS| +|repaymentType|INTEREST_ONLY| +|repaymentType|PRINCIPAL_AND_INTEREST| +|loanPurpose|INVESTMENT| +|loanPurpose|OWNER_OCCUPIED| + +

BankingProductRateTierV3

+ + + +```json +{ + "name": "string", + "unitOfMeasure": "DAY", + "minimumValue": 0, + "maximumValue": 0, + "rateApplicationMethod": "PER_TIER", + "applicabilityConditions": { + "additionalInfo": "string", + "additionalInfoUri": "string" + }, + "additionalInfo": "string", + "additionalInfoUri": "string" +} + +``` + +*Defines the criteria and conditions for which a rate applies* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|name|string|mandatory|A display name for the tier| +|unitOfMeasure|string|mandatory|The unit of measure that applies to the tierValueMinimum and tierValueMaximum values e.g. a **DOLLAR** amount. **PERCENT** (in the case of loan-to-value ratio or LVR). Tier term period representing a discrete number of **MONTH**'s or **DAY**'s (in the case of term deposit tiers)| +|minimumValue|[Number](#common-field-types)|mandatory|The number of tierUnitOfMeasure units that form the lower bound of the tier. The tier should be inclusive of this value| +|maximumValue|[Number](#common-field-types)|optional|The number of tierUnitOfMeasure units that form the upper bound of the tier or band. For a tier with a discrete value (as opposed to a range of values e.g. 1 month) this must be the same as tierValueMinimum. Where this is the same as the tierValueMinimum value of the next-higher tier the referenced tier should be exclusive of this value. For example a term deposit of 2 months falls into the upper tier of the following tiers: (1 – 2 months, 2 – 3 months). If absent the tier's range has no upper bound.| +|rateApplicationMethod|string|optional|The method used to calculate the amount to be applied using one or more tiers. A single rate may be applied to the entire balance or each applicable tier rate is applied to the portion of the balance that falls into that tier (referred to as 'bands' or 'steps')| +|applicabilityConditions|[BankingProductRateCondition](#schemacdr-banking-apibankingproductratecondition)|optional|Defines a condition for the applicability of a tiered rate| +|additionalInfo|string|optional|Display text providing more information on the rate tier.| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this rate tier| + +#### Enumerated Values + +|Property|Value| +|---|---| +|unitOfMeasure|DAY| +|unitOfMeasure|DOLLAR| +|unitOfMeasure|MONTH| +|unitOfMeasure|PERCENT| +|rateApplicationMethod|PER_TIER| +|rateApplicationMethod|WHOLE_BALANCE| + +

BankingProductRateCondition

+ + + +```json +{ + "additionalInfo": "string", + "additionalInfoUri": "string" +} + +``` + +*Defines a condition for the applicability of a tiered rate* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|additionalInfo|string|optional|Display text providing more information on the condition| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this condition| + + + +

BankingAccountV2

+ + + +```json +{ + "accountId": "string", + "creationDate": "string", + "displayName": "string", + "nickname": "string", + "openStatus": "CLOSED", + "isOwned": true, + "accountOwnership": "UNKNOWN", + "maskedNumber": "string", + "productCategory": "BUSINESS_LOANS", + "productName": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|accountId|[ASCIIString](#common-field-types)|mandatory|A unique ID of the account adhering to the standards for ID permanence| +|creationDate|[DateString](#common-field-types)|optional|Date that the account was created (if known)| +|displayName|string|mandatory|The display name of the account as defined by the bank. This should not incorporate account numbers or PANs. If it does the values should be masked according to the rules of the MaskedAccountString common type.| +|nickname|string|optional|A customer supplied nick name for the account| +|openStatus|string|optional|Open or closed status for the account. If not present then OPEN is assumed| +|isOwned|[Boolean](#common-field-types)|optional|Flag indicating that the customer associated with the authorisation is an owner of the account. Does not indicate sole ownership, however. If not present then 'true' is assumed| +|accountOwnership|string|mandatory|Value indicating the number of customers that have ownership of the account, according to the data holder's definition of account ownership. Does not indicate that all account owners are eligible consumers| +|maskedNumber|[MaskedAccountString](#common-field-types)|mandatory|A masked version of the account. Whether BSB/Account Number, Credit Card PAN or another number| +|productCategory|[BankingProductCategory](#schemacdr-banking-apibankingproductcategory)|mandatory|The category to which a product or account belongs. See [here](#product-categories) for more details| +|productName|string|mandatory|The unique identifier of the account as defined by the data holder (akin to model number for the account)| + +#### Enumerated Values + +|Property|Value| +|---|---| +|openStatus|CLOSED| +|openStatus|OPEN| +|accountOwnership|UNKNOWN| +|accountOwnership|ONE_PARTY| +|accountOwnership|TWO_PARTY| +|accountOwnership|MANY_PARTY| +|accountOwnership|OTHER| + +

ResponseBankingAccountByIdV3

+ + + +```json +{ + "data": { + "accountId": "string", + "creationDate": "string", + "displayName": "string", + "nickname": "string", + "openStatus": "CLOSED", + "isOwned": true, + "accountOwnership": "UNKNOWN", + "maskedNumber": "string", + "productCategory": "BUSINESS_LOANS", + "productName": "string", + "bsb": "string", + "accountNumber": "string", + "bundleName": "string", + "specificAccountUType": "creditCard", + "termDeposit": [ + { + "lodgementDate": "string", + "maturityDate": "string", + "maturityAmount": "string", + "maturityCurrency": "string", + "maturityInstructions": "HOLD_ON_MATURITY" + } + ], + "creditCard": { + "minPaymentAmount": "string", + "paymentDueAmount": "string", + "paymentCurrency": "string", + "paymentDueDate": "string" + }, + "loan": { + "originalStartDate": "string", + "originalLoanAmount": "string", + "originalLoanCurrency": "string", + "loanEndDate": "string", + "nextInstalmentDate": "string", + "minInstalmentAmount": "string", + "minInstalmentCurrency": "string", + "maxRedraw": "string", + "maxRedrawCurrency": "string", + "minRedraw": "string", + "minRedrawCurrency": "string", + "offsetAccountEnabled": true, + "offsetAccountIds": [ + "string" + ], + "repaymentType": "INTEREST_ONLY", + "repaymentFrequency": "string" + }, + "depositRate": "string", + "lendingRate": "string", + "depositRates": [ + { + "depositRateType": "BONUS", + "rate": "string", + "calculationFrequency": "string", + "applicationFrequency": "string", + "tiers": [ + { + "name": "string", + "unitOfMeasure": "DAY", + "minimumValue": 0, + "maximumValue": 0, + "rateApplicationMethod": "PER_TIER", + "applicabilityConditions": { + "additionalInfo": "string", + "additionalInfoUri": "string" + }, + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "lendingRates": [ + { + "lendingRateType": "BUNDLE_DISCOUNT_FIXED", + "rate": "string", + "comparisonRate": "string", + "calculationFrequency": "string", + "applicationFrequency": "string", + "interestPaymentDue": "IN_ADVANCE", + "repaymentType": "INTEREST_ONLY", + "loanPurpose": "INVESTMENT", + "tiers": [ + { + "name": "string", + "unitOfMeasure": "DAY", + "minimumValue": 0, + "maximumValue": 0, + "rateApplicationMethod": "PER_TIER", + "applicabilityConditions": { + "additionalInfo": "string", + "additionalInfoUri": "string" + }, + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "features": [ + { + "featureType": "ADDITIONAL_CARDS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "isActivated": true + } + ], + "fees": [ + { + "name": "string", + "feeType": "DEPOSIT", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "accrualFrequency": "string", + "currency": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "discounts": [ + { + "description": "string", + "discountType": "BALANCE", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "feeRate": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "eligibility": [ + { + "discountEligibilityType": "BUSINESS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ] + } + ] + } + ], + "addresses": [ + { + "addressUType": "paf", + "simple": { + "mailingName": "string", + "addressLine1": "string", + "addressLine2": "string", + "addressLine3": "string", + "postcode": "string", + "city": "string", + "state": "string", + "country": "AUS" + }, + "paf": { + "dpid": "string", + "thoroughfareNumber1": 0, + "thoroughfareNumber1Suffix": "string", + "thoroughfareNumber2": 0, + "thoroughfareNumber2Suffix": "string", + "flatUnitType": "string", + "flatUnitNumber": "string", + "floorLevelType": "string", + "floorLevelNumber": "string", + "lotNumber": "string", + "buildingName1": "string", + "buildingName2": "string", + "streetName": "string", + "streetType": "string", + "streetSuffix": "string", + "postalDeliveryType": "string", + "postalDeliveryNumber": 0, + "postalDeliveryNumberPrefix": "string", + "postalDeliveryNumberSuffix": "string", + "localityName": "string", + "postcode": "string", + "state": "string" + } + } + ] + }, + "links": { + "self": "string" + }, + "meta": {} +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|data|[BankingAccountDetailV3](#schemacdr-banking-apibankingaccountdetailv3)|mandatory|none| +|links|[Links](#schemacdr-banking-apilinks)|mandatory|none| +|meta|[Meta](#schemacdr-banking-apimeta)|optional|none| + +

BankingAccountDetailV3

+ + + +```json +{ + "accountId": "string", + "creationDate": "string", + "displayName": "string", + "nickname": "string", + "openStatus": "CLOSED", + "isOwned": true, + "accountOwnership": "UNKNOWN", + "maskedNumber": "string", + "productCategory": "BUSINESS_LOANS", + "productName": "string", + "bsb": "string", + "accountNumber": "string", + "bundleName": "string", + "specificAccountUType": "creditCard", + "termDeposit": [ + { + "lodgementDate": "string", + "maturityDate": "string", + "maturityAmount": "string", + "maturityCurrency": "string", + "maturityInstructions": "HOLD_ON_MATURITY" + } + ], + "creditCard": { + "minPaymentAmount": "string", + "paymentDueAmount": "string", + "paymentCurrency": "string", + "paymentDueDate": "string" + }, + "loan": { + "originalStartDate": "string", + "originalLoanAmount": "string", + "originalLoanCurrency": "string", + "loanEndDate": "string", + "nextInstalmentDate": "string", + "minInstalmentAmount": "string", + "minInstalmentCurrency": "string", + "maxRedraw": "string", + "maxRedrawCurrency": "string", + "minRedraw": "string", + "minRedrawCurrency": "string", + "offsetAccountEnabled": true, + "offsetAccountIds": [ + "string" + ], + "repaymentType": "INTEREST_ONLY", + "repaymentFrequency": "string" + }, + "depositRate": "string", + "lendingRate": "string", + "depositRates": [ + { + "depositRateType": "BONUS", + "rate": "string", + "calculationFrequency": "string", + "applicationFrequency": "string", + "tiers": [ + { + "name": "string", + "unitOfMeasure": "DAY", + "minimumValue": 0, + "maximumValue": 0, + "rateApplicationMethod": "PER_TIER", + "applicabilityConditions": { + "additionalInfo": "string", + "additionalInfoUri": "string" + }, + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "lendingRates": [ + { + "lendingRateType": "BUNDLE_DISCOUNT_FIXED", + "rate": "string", + "comparisonRate": "string", + "calculationFrequency": "string", + "applicationFrequency": "string", + "interestPaymentDue": "IN_ADVANCE", + "repaymentType": "INTEREST_ONLY", + "loanPurpose": "INVESTMENT", + "tiers": [ + { + "name": "string", + "unitOfMeasure": "DAY", + "minimumValue": 0, + "maximumValue": 0, + "rateApplicationMethod": "PER_TIER", + "applicabilityConditions": { + "additionalInfo": "string", + "additionalInfoUri": "string" + }, + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "features": [ + { + "featureType": "ADDITIONAL_CARDS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "isActivated": true + } + ], + "fees": [ + { + "name": "string", + "feeType": "DEPOSIT", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "accrualFrequency": "string", + "currency": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "discounts": [ + { + "description": "string", + "discountType": "BALANCE", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "feeRate": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "eligibility": [ + { + "discountEligibilityType": "BUSINESS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ] + } + ] + } + ], + "addresses": [ + { + "addressUType": "paf", + "simple": { + "mailingName": "string", + "addressLine1": "string", + "addressLine2": "string", + "addressLine3": "string", + "postcode": "string", + "city": "string", + "state": "string", + "country": "AUS" + }, + "paf": { + "dpid": "string", + "thoroughfareNumber1": 0, + "thoroughfareNumber1Suffix": "string", + "thoroughfareNumber2": 0, + "thoroughfareNumber2Suffix": "string", + "flatUnitType": "string", + "flatUnitNumber": "string", + "floorLevelType": "string", + "floorLevelNumber": "string", + "lotNumber": "string", + "buildingName1": "string", + "buildingName2": "string", + "streetName": "string", + "streetType": "string", + "streetSuffix": "string", + "postalDeliveryType": "string", + "postalDeliveryNumber": 0, + "postalDeliveryNumberPrefix": "string", + "postalDeliveryNumberSuffix": "string", + "localityName": "string", + "postcode": "string", + "state": "string" + } + } + ] +} + +``` + +### Properties + +*allOf* + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[BankingAccountV2](#schemacdr-banking-apibankingaccountv2)|mandatory|none| + +*and* + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|mandatory|none| +|» bsb|string|optional|The unmasked BSB for the account. Is expected to be formatted as digits only with leading zeros included and no punctuation or spaces| +|» accountNumber|string|optional|The unmasked account number for the account. Should not be supplied if the account number is a PAN requiring PCI compliance. Is expected to be formatted as digits only with leading zeros included and no punctuation or spaces| +|» bundleName|string|optional|Optional field to indicate if this account is part of a bundle that is providing additional benefit to the customer| +|» specificAccountUType|string|optional|The type of structure to present account specific fields.| +|» termDeposit|[[BankingTermDepositAccount](#schemacdr-banking-apibankingtermdepositaccount)]|conditional|none| +|» creditCard|[BankingCreditCardAccount](#schemacdr-banking-apibankingcreditcardaccount)|conditional|none| +|» loan|[BankingLoanAccountV2](#schemacdr-banking-apibankingloanaccountv2)|conditional|none| +|» depositRate|[RateString](#common-field-types)|optional|current rate to calculate interest earned being applied to deposit balances as it stands at the time of the API call| +|» lendingRate|[RateString](#common-field-types)|optional|The current rate to calculate interest payable being applied to lending balances as it stands at the time of the API call| +|» depositRates|[[BankingProductDepositRate](#schemacdr-banking-apibankingproductdepositrate)]|optional|Fully described deposit rates for this account based on the equivalent structure in Product Reference| +|» lendingRates|[[BankingProductLendingRateV2](#schemacdr-banking-apibankingproductlendingratev2)]|optional|Fully described lending rates for this account based on the equivalent structure in Product Reference| +|» features|[allOf]|optional|Array of features of the account based on the equivalent structure in Product Reference with the following additional field| + +*allOf* + +|Name|Type|Required|Description| +|---|---|---|---| +|»» *anonymous*|[BankingProductFeatureV2](#schemacdr-banking-apibankingproductfeaturev2)|mandatory|none| + +*and* + +|Name|Type|Required|Description| +|---|---|---|---| +|»» *anonymous*|object|mandatory|none| +|»»» isActivated|[Boolean](#common-field-types)|optional|True if the feature is already activated and false if the feature is available for activation. Defaults to true if absent. (note this is an additional field appended to the feature object defined in the Product Reference payload)| + +*continued* + +|Name|Type|Required|Description| +|---|---|---|---| +|» fees|[[BankingProductFee](#schemacdr-banking-apibankingproductfee)]|optional|Fees and charges applicable to the account based on the equivalent structure in Product Reference| +|» addresses|[[CommonPhysicalAddress](#schemacdr-banking-apicommonphysicaladdress)]|optional|The addresses for the account to be used for correspondence| + +#### Enumerated Values + +|Property|Value| +|---|---| +|specificAccountUType|creditCard| +|specificAccountUType|loan| +|specificAccountUType|termDeposit| + +

BankingTermDepositAccount

+ + + +```json +{ + "lodgementDate": "string", + "maturityDate": "string", + "maturityAmount": "string", + "maturityCurrency": "string", + "maturityInstructions": "HOLD_ON_MATURITY" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|lodgementDate|[DateString](#common-field-types)|mandatory|The lodgement date of the original deposit| +|maturityDate|[DateString](#common-field-types)|mandatory|Maturity date for the term deposit| +|maturityAmount|[AmountString](#common-field-types)|optional|Amount to be paid upon maturity. If absent it implies the amount to paid is variable and cannot currently be calculated| +|maturityCurrency|[CurrencyString](#common-field-types)|optional|If absent assumes AUD| +|maturityInstructions|string|mandatory|Current instructions on action to be taken at maturity. This includes default actions that may be specified in the terms and conditions for the product e.g. roll-over to the same term and frequency of interest payments| + +#### Enumerated Values + +|Property|Value| +|---|---| +|maturityInstructions|HOLD_ON_MATURITY| +|maturityInstructions|PAID_OUT_AT_MATURITY| +|maturityInstructions|ROLLED_OVER| + +

BankingCreditCardAccount

+ + + +```json +{ + "minPaymentAmount": "string", + "paymentDueAmount": "string", + "paymentCurrency": "string", + "paymentDueDate": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|minPaymentAmount|[AmountString](#common-field-types)|mandatory|The minimum payment amount due for the next card payment| +|paymentDueAmount|[AmountString](#common-field-types)|mandatory|The amount due for the next card payment| +|paymentCurrency|[CurrencyString](#common-field-types)|optional|If absent assumes AUD| +|paymentDueDate|[DateString](#common-field-types)|mandatory|Date that the next payment for the card is due| + +

BankingLoanAccountV2

+ + + +```json +{ + "originalStartDate": "string", + "originalLoanAmount": "string", + "originalLoanCurrency": "string", + "loanEndDate": "string", + "nextInstalmentDate": "string", + "minInstalmentAmount": "string", + "minInstalmentCurrency": "string", + "maxRedraw": "string", + "maxRedrawCurrency": "string", + "minRedraw": "string", + "minRedrawCurrency": "string", + "offsetAccountEnabled": true, + "offsetAccountIds": [ + "string" + ], + "repaymentType": "INTEREST_ONLY", + "repaymentFrequency": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|originalStartDate|[DateString](#common-field-types)|optional|Optional original start date for the loan| +|originalLoanAmount|[AmountString](#common-field-types)|optional|Optional original loan value| +|originalLoanCurrency|[CurrencyString](#common-field-types)|optional|If absent assumes AUD| +|loanEndDate|[DateString](#common-field-types)|optional|Date that the loan is due to be repaid in full| +|nextInstalmentDate|[DateString](#common-field-types)|optional|Next date that an instalment is required| +|minInstalmentAmount|[AmountString](#common-field-types)|optional|Minimum amount of next instalment| +|minInstalmentCurrency|[CurrencyString](#common-field-types)|optional|If absent assumes AUD| +|maxRedraw|[AmountString](#common-field-types)|optional|Maximum amount of funds that can be redrawn. If not present redraw is not available even if the feature exists for the account| +|maxRedrawCurrency|[CurrencyString](#common-field-types)|optional|If absent assumes AUD| +|minRedraw|[AmountString](#common-field-types)|optional|Minimum redraw amount| +|minRedrawCurrency|[CurrencyString](#common-field-types)|optional|If absent assumes AUD| +|offsetAccountEnabled|[Boolean](#common-field-types)|optional|Set to true if one or more offset accounts are configured for this loan account| +|offsetAccountIds|[string]|optional|The accountIDs of the configured offset accounts attached to this loan. Only offset accounts that can be accessed under the current authorisation should be included. It is expected behaviour that offsetAccountEnabled is set to true but the offsetAccountIds field is absent or empty. This represents a situation where an offset account exists but details can not be accessed under the current authorisation| +|repaymentType|string|optional|Options in place for repayments. If absent defaults to PRINCIPAL_AND_INTEREST| +|repaymentFrequency|[ExternalRef](#common-field-types)|optional|The expected or required repayment frequency. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)| + +#### Enumerated Values + +|Property|Value| +|---|---| +|repaymentType|INTEREST_ONLY| +|repaymentType|PRINCIPAL_AND_INTEREST| + + + + + + + +```json +{ + "self": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|self|[URIString](#common-field-types)|mandatory|Fully qualified link that generated the current response document| + + + +

CommonPhysicalAddress

+ + + +```json +{ + "addressUType": "paf", + "simple": { + "mailingName": "string", + "addressLine1": "string", + "addressLine2": "string", + "addressLine3": "string", + "postcode": "string", + "city": "string", + "state": "string", + "country": "AUS" + }, + "paf": { + "dpid": "string", + "thoroughfareNumber1": 0, + "thoroughfareNumber1Suffix": "string", + "thoroughfareNumber2": 0, + "thoroughfareNumber2Suffix": "string", + "flatUnitType": "string", + "flatUnitNumber": "string", + "floorLevelType": "string", + "floorLevelNumber": "string", + "lotNumber": "string", + "buildingName1": "string", + "buildingName2": "string", + "streetName": "string", + "streetType": "string", + "streetSuffix": "string", + "postalDeliveryType": "string", + "postalDeliveryNumber": 0, + "postalDeliveryNumberPrefix": "string", + "postalDeliveryNumberSuffix": "string", + "localityName": "string", + "postcode": "string", + "state": "string" + } +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|addressUType|string|mandatory|The type of address object present| +|simple|[CommonSimpleAddress](#schemacdr-banking-apicommonsimpleaddress)|conditional|none| +|paf|[CommonPAFAddress](#schemacdr-banking-apicommonpafaddress)|conditional|Australian address formatted according to the file format defined by the [PAF file format](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf)| + +#### Enumerated Values + +|Property|Value| +|---|---| +|addressUType|paf| +|addressUType|simple| + + + +

CommonSimpleAddress

+ + + +```json +{ + "mailingName": "string", + "addressLine1": "string", + "addressLine2": "string", + "addressLine3": "string", + "postcode": "string", + "city": "string", + "state": "string", + "country": "AUS" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|mailingName|string|optional|Name of the individual or business formatted for inclusion in an address used for physical mail| +|addressLine1|string|mandatory|First line of the standard address object| +|addressLine2|string|optional|Second line of the standard address object| +|addressLine3|string|optional|Third line of the standard address object| +|postcode|string|conditional|Mandatory for Australian addresses| +|city|string|mandatory|Name of the city or locality| +|state|string|mandatory|Free text if the country is not Australia. If country is Australia then must be one of the values defined by the [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf) in the PAF file format. NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT| +|country|[ExternalRef](#common-field-types)|optional|A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code. Australia (AUS) is assumed if country is not present.| + +

CommonPAFAddress

+ + + +```json +{ + "dpid": "string", + "thoroughfareNumber1": 0, + "thoroughfareNumber1Suffix": "string", + "thoroughfareNumber2": 0, + "thoroughfareNumber2Suffix": "string", + "flatUnitType": "string", + "flatUnitNumber": "string", + "floorLevelType": "string", + "floorLevelNumber": "string", + "lotNumber": "string", + "buildingName1": "string", + "buildingName2": "string", + "streetName": "string", + "streetType": "string", + "streetSuffix": "string", + "postalDeliveryType": "string", + "postalDeliveryNumber": 0, + "postalDeliveryNumberPrefix": "string", + "postalDeliveryNumberSuffix": "string", + "localityName": "string", + "postcode": "string", + "state": "string" +} + +``` + +*Australian address formatted according to the file format defined by the [PAF file format](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf)* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|dpid|string|optional|Unique identifier for an address as defined by Australia Post. Also known as Delivery Point Identifier| +|thoroughfareNumber1|[PositiveInteger](#common-field-types)|optional|Thoroughfare number for a property (first number in a property ranged address)| +|thoroughfareNumber1Suffix|string|optional|Suffix for the thoroughfare number. Only relevant is thoroughfareNumber1 is populated| +|thoroughfareNumber2|[PositiveInteger](#common-field-types)|optional|Second thoroughfare number (only used if the property has a ranged address eg 23-25)| +|thoroughfareNumber2Suffix|string|optional|Suffix for the second thoroughfare number. Only relevant is thoroughfareNumber2 is populated| +|flatUnitType|string|optional|Type of flat or unit for the address| +|flatUnitNumber|string|optional|Unit number (including suffix, if applicable)| +|floorLevelType|string|optional|Type of floor or level for the address| +|floorLevelNumber|string|optional|Floor or level number (including alpha characters)| +|lotNumber|string|optional|Allotment number for the address| +|buildingName1|string|optional|Building/Property name 1| +|buildingName2|string|optional|Building/Property name 2| +|streetName|string|optional|The name of the street| +|streetType|string|optional|The street type. Valid enumeration defined by Australia Post PAF code file| +|streetSuffix|string|optional|The street type suffix. Valid enumeration defined by Australia Post PAF code file| +|postalDeliveryType|string|optional|Postal delivery type. (eg. PO BOX). Valid enumeration defined by Australia Post PAF code file| +|postalDeliveryNumber|[PositiveInteger](#common-field-types)|optional|Postal delivery number if the address is a postal delivery type| +|postalDeliveryNumberPrefix|string|optional|Postal delivery number prefix related to the postal delivery number| +|postalDeliveryNumberSuffix|string|optional|Postal delivery number suffix related to the postal delivery number| +|localityName|string|mandatory|Full name of locality| +|postcode|string|mandatory|Postcode for the locality| +|state|string|mandatory|State in which the address belongs. Valid enumeration defined by Australia Post PAF code file [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf). NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT| + + + +

Meta

+ + + +```json +{} + +``` + +### Properties + +*None* + + + +

MetaError

+ + + +```json +{ + "urn": "string" +} + +``` + +*Additional data for customised error codes* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|urn|string|conditional|The CDR error code URN which the application-specific error code extends. Mandatory if the error `code` is an application-specific error rather than a standardised error code.| + +

ResponseErrorListV2

+ + + +```json +{ + "errors": [ + { + "code": "string", + "title": "string", + "detail": "string", + "meta": { + "urn": "string" + } + } + ] +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|errors|[object]|mandatory|none| +|» code|string|mandatory|The code of the error encountered. Where the error is specific to the respondent, an application-specific error code, expressed as a string value. If the error is application-specific, the URN code that the specific error extends must be provided in the meta object. Otherwise, the value is the error code URN.| +|» title|string|mandatory|A short, human-readable summary of the problem that MUST NOT change from occurrence to occurrence of the problem represented by the error code.| +|» detail|string|mandatory|A human-readable explanation specific to this occurrence of the problem.| +|» meta|[MetaError](#schemacdr-banking-apimetaerror)|optional|Additional data for customised error codes| + +

BankingProductCategory

+ + + +```json +"BUSINESS_LOANS" + +``` + +*The category to which a product or account belongs. See [here](#product-categories) for more details* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|string|mandatory|The category to which a product or account belongs. See [here](#product-categories) for more details| + +#### Enumerated Values + +|Property|Value| +|---|---| +|*anonymous*|BUSINESS_LOANS| +|*anonymous*|CRED_AND_CHRG_CARDS| +|*anonymous*|LEASES| +|*anonymous*|MARGIN_LOANS| +|*anonymous*|OVERDRAFTS| +|*anonymous*|PERS_LOANS| +|*anonymous*|REGULATED_TRUST_ACCOUNTS| +|*anonymous*|RESIDENTIAL_MORTGAGES| +|*anonymous*|TERM_DEPOSITS| +|*anonymous*|TRADE_FINANCE| +|*anonymous*|TRANS_AND_SAVINGS_ACCOUNTS| +|*anonymous*|TRAVEL_CARDS| + diff --git a/slate/source/includes/obsolete/get-accounts-v2.html.md b/slate/source/includes/obsolete/get-accounts-v2.html.md new file mode 100644 index 00000000..616b1f14 --- /dev/null +++ b/slate/source/includes/obsolete/get-accounts-v2.html.md @@ -0,0 +1,406 @@ +--- +title: Get Accounts v2 + +#language_tabs: # must be one of https://git.io/vQNgJ +# - shell +# - javascript + +toc_footers: + - Consumer Data Standards + +search: false +--- + +# Get Accounts V2 +This page documents the obsolete version 2 of the Get Accounts endpoint. + +This version is to be ceased to be called by data recipients by **Date TBC** and can be decommissioned by data holders as of that date. + +## Get Accounts + + + +> Code samples + +```http +GET https://data.holder.com.au/cds-au/v1/banking/accounts HTTP/1.1 +Host: data.holder.com.au +Accept: application/json +x-v: string +x-min-v: string +x-fapi-interaction-id: string +x-fapi-auth-date: string +x-fapi-customer-ip-address: string +x-cds-client-headers: string + +``` + +```javascript--nodejs +const fetch = require('node-fetch'); + +const headers = { + 'Accept':'application/json', + 'x-v':'string', + 'x-min-v':'string', + 'x-fapi-interaction-id':'string', + 'x-fapi-auth-date':'string', + 'x-fapi-customer-ip-address':'string', + 'x-cds-client-headers':'string' + +}; + +fetch('https://data.holder.com.au/cds-au/v1/banking/accounts', +{ + method: 'GET', + + headers: headers +}) +.then(function(res) { + return res.json(); +}).then(function(body) { + console.log(body); +}); + +``` + +`GET /banking/accounts` + +Obtain a list of accounts. + +Obsolete versions: [v1](../../includes/obsolete/get-accounts-v1.html) + +###Endpoint Version +| | | +|---|--| +|Version|**2** + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|product-category|query|string|optional|Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.| +|open-status|query|string|optional|Used to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed| +|is-owned|query|[Boolean](#common-field-types)|optional|Filters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts| +|page|query|[PositiveInteger](#common-field-types)|optional|Page of results to request (standard pagination)| +|page-size|query|[PositiveInteger](#common-field-types)|optional|Page size to request. Default is 25 (standard pagination)| +|x-v|header|string|mandatory|Version of the API end point requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers)| +|x-min-v|header|string|optional|Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.| +|x-fapi-interaction-id|header|string|optional|An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| +|x-fapi-auth-date|header|string|conditional|The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.| +|x-fapi-customer-ip-address|header|string|optional|The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.| +|x-cds-client-headers|header|[Base64](#common-field-types)|conditional|The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.| + +#### Enumerated Values + +|Parameter|Value| +|---|---| +|product-category|BUSINESS_LOANS| +|product-category|CRED_AND_CHRG_CARDS| +|product-category|LEASES| +|product-category|MARGIN_LOANS| +|product-category|OVERDRAFTS| +|product-category|PERS_LOANS| +|product-category|REGULATED_TRUST_ACCOUNTS| +|product-category|RESIDENTIAL_MORTGAGES| +|product-category|TERM_DEPOSITS| +|product-category|TRADE_FINANCE| +|product-category|TRANS_AND_SAVINGS_ACCOUNTS| +|product-category|TRAVEL_CARDS| +|open-status|ALL| +|open-status|CLOSED| +|open-status|OPEN| + +> Example responses + +> 200 Response + +```json +{ + "data": { + "accounts": [ + { + "accountId": "string", + "creationDate": "string", + "displayName": "string", + "nickname": "string", + "openStatus": "CLOSED", + "isOwned": true, + "accountOwnership": "UNKNOWN", + "maskedNumber": "string", + "productCategory": "BUSINESS_LOANS", + "productName": "string" + } + ] + }, + "links": { + "self": "string", + "first": "string", + "prev": "string", + "next": "string", + "last": "string" + }, + "meta": { + "totalRecords": 0, + "totalPages": 0 + } +} +``` + +

Responses

+ +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success|[ResponseBankingAccountListV2](#schemacdr-banking-apiresponsebankingaccountlistv2)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| +|406|[Not Acceptable](https://tools.ietf.org/html/rfc7231#section-6.5.6)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| +|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| + +### Response Headers + +|Status|Header|Type|Format|Description| +|---|---|---|---|---| +|200|x-v|string||The [version](#response-headers) of the API end point that the data holder has responded with.| +|200|x-fapi-interaction-id|string||An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| +|400|x-fapi-interaction-id|string||An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| +|406|x-fapi-interaction-id|string||An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| +|422|x-fapi-interaction-id|string||An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| + + + + + + + +

Schemas

+ + + + +

ResponseBankingAccountListV2

+ + + +```json +{ + "data": { + "accounts": [ + { + "accountId": "string", + "creationDate": "string", + "displayName": "string", + "nickname": "string", + "openStatus": "CLOSED", + "isOwned": true, + "accountOwnership": "UNKNOWN", + "maskedNumber": "string", + "productCategory": "BUSINESS_LOANS", + "productName": "string" + } + ] + }, + "links": { + "self": "string", + "first": "string", + "prev": "string", + "next": "string", + "last": "string" + }, + "meta": { + "totalRecords": 0, + "totalPages": 0 + } +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|data|object|mandatory|none| +|» accounts|[[BankingAccountV2](#schemacdr-banking-apibankingaccountv2)]|mandatory|The list of accounts returned. If the filter results in an empty set then this array may have no records| +|links|[LinksPaginated](#schemacdr-banking-apilinkspaginated)|mandatory|none| +|meta|[MetaPaginated](#schemacdr-banking-apimetapaginated)|mandatory|none| + +

BankingAccountV2

+ + + +```json +{ + "accountId": "string", + "creationDate": "string", + "displayName": "string", + "nickname": "string", + "openStatus": "CLOSED", + "isOwned": true, + "accountOwnership": "UNKNOWN", + "maskedNumber": "string", + "productCategory": "BUSINESS_LOANS", + "productName": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|accountId|[ASCIIString](#common-field-types)|mandatory|A unique ID of the account adhering to the standards for ID permanence| +|creationDate|[DateString](#common-field-types)|optional|Date that the account was created (if known)| +|displayName|string|mandatory|The display name of the account as defined by the bank. This should not incorporate account numbers or PANs. If it does the values should be masked according to the rules of the MaskedAccountString common type.| +|nickname|string|optional|A customer supplied nick name for the account| +|openStatus|string|optional|Open or closed status for the account. If not present then OPEN is assumed| +|isOwned|[Boolean](#common-field-types)|optional|Flag indicating that the customer associated with the authorisation is an owner of the account. Does not indicate sole ownership, however. If not present then 'true' is assumed| +|accountOwnership|string|mandatory|Value indicating the number of customers that have ownership of the account, according to the data holder's definition of account ownership. Does not indicate that all account owners are eligible consumers| +|maskedNumber|[MaskedAccountString](#common-field-types)|mandatory|A masked version of the account. Whether BSB/Account Number, Credit Card PAN or another number| +|productCategory|[BankingProductCategory](#schemacdr-banking-apibankingproductcategory)|mandatory|The category to which a product or account belongs. See [here](#product-categories) for more details| +|productName|string|mandatory|The unique identifier of the account as defined by the data holder (akin to model number for the account)| + +#### Enumerated Values + +|Property|Value| +|---|---| +|openStatus|CLOSED| +|openStatus|OPEN| +|accountOwnership|UNKNOWN| +|accountOwnership|ONE_PARTY| +|accountOwnership|TWO_PARTY| +|accountOwnership|MANY_PARTY| +|accountOwnership|OTHER| + + + +

LinksPaginated

+ + + +```json +{ + "self": "string", + "first": "string", + "prev": "string", + "next": "string", + "last": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|self|[URIString](#common-field-types)|mandatory|Fully qualified link that generated the current response document| +|first|[URIString](#common-field-types)|conditional|URI to the first page of this set. Mandatory if this response is not the first page| +|prev|[URIString](#common-field-types)|conditional|URI to the previous page of this set. Mandatory if this response is not the first page| +|next|[URIString](#common-field-types)|conditional|URI to the next page of this set. Mandatory if this response is not the last page| +|last|[URIString](#common-field-types)|conditional|URI to the last page of this set. Mandatory if this response is not the last page| + +

MetaPaginated

+ + + +```json +{ + "totalRecords": 0, + "totalPages": 0 +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|totalRecords|[NaturalNumber](#common-field-types)|mandatory|The total number of records in the full set. See [pagination](#pagination).| +|totalPages|[NaturalNumber](#common-field-types)|mandatory|The total number of pages in the full set. See [pagination](#pagination).| + + + +

MetaError

+ + + +```json +{ + "urn": "string" +} + +``` + +*Additional data for customised error codes* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|urn|string|conditional|The CDR error code URN which the application-specific error code extends. Mandatory if the error `code` is an application-specific error rather than a standardised error code.| + +

ResponseErrorListV2

+ + + +```json +{ + "errors": [ + { + "code": "string", + "title": "string", + "detail": "string", + "meta": { + "urn": "string" + } + } + ] +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|errors|[object]|mandatory|none| +|» code|string|mandatory|The code of the error encountered. Where the error is specific to the respondent, an application-specific error code, expressed as a string value. If the error is application-specific, the URN code that the specific error extends must be provided in the meta object. Otherwise, the value is the error code URN.| +|» title|string|mandatory|A short, human-readable summary of the problem that MUST NOT change from occurrence to occurrence of the problem represented by the error code.| +|» detail|string|mandatory|A human-readable explanation specific to this occurrence of the problem.| +|» meta|[MetaError](#schemacdr-banking-apimetaerror)|optional|Additional data for customised error codes| + + +

BankingProductCategory

+ + + +```json +"BUSINESS_LOANS" + +``` + +*The category to which a product or account belongs. See [here](#product-categories) for more details* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|string|mandatory|The category to which a product or account belongs. See [here](#product-categories) for more details| + +#### Enumerated Values + +|Property|Value| +|---|---| +|*anonymous*|BUSINESS_LOANS| +|*anonymous*|CRED_AND_CHRG_CARDS| +|*anonymous*|LEASES| +|*anonymous*|MARGIN_LOANS| +|*anonymous*|OVERDRAFTS| +|*anonymous*|PERS_LOANS| +|*anonymous*|REGULATED_TRUST_ACCOUNTS| +|*anonymous*|RESIDENTIAL_MORTGAGES| +|*anonymous*|TERM_DEPOSITS| +|*anonymous*|TRADE_FINANCE| +|*anonymous*|TRANS_AND_SAVINGS_ACCOUNTS| +|*anonymous*|TRAVEL_CARDS| + diff --git a/slate/source/includes/obsolete/get-bulk-balances-v1.html.md b/slate/source/includes/obsolete/get-bulk-balances-v1.html.md new file mode 100644 index 00000000..225c1768 --- /dev/null +++ b/slate/source/includes/obsolete/get-bulk-balances-v1.html.md @@ -0,0 +1,451 @@ +--- +title: Get Bulk Balances v1 + +#language_tabs: # must be one of https://git.io/vQNgJ +# - shell +# - javascript + +toc_footers: + - Consumer Data Standards + +search: false +--- + +# Get Bulk Balances V1 +This page documents the obsolete version 1 of the Get Bulk Balances endpoint. + +This version is to be ceased to be called by data recipients by **Date TBC** and can be decommissioned by data holders as of that date. + + + +## Get Bulk Balances + + + +> Code samples + +```http +GET https://data.holder.com.au/cds-au/v1/banking/accounts/balances HTTP/1.1 +Host: data.holder.com.au +Accept: application/json +x-v: string +x-min-v: string +x-fapi-interaction-id: string +x-fapi-auth-date: string +x-fapi-customer-ip-address: string +x-cds-client-headers: string + +``` + +```javascript--nodejs +const fetch = require('node-fetch'); + +const headers = { + 'Accept':'application/json', + 'x-v':'string', + 'x-min-v':'string', + 'x-fapi-interaction-id':'string', + 'x-fapi-auth-date':'string', + 'x-fapi-customer-ip-address':'string', + 'x-cds-client-headers':'string' + +}; + +fetch('https://data.holder.com.au/cds-au/v1/banking/accounts/balances', +{ + method: 'GET', + + headers: headers +}) +.then(function(res) { + return res.json(); +}).then(function(body) { + console.log(body); +}); + +``` + +`GET /banking/accounts/balances` + +Obtain balances for multiple, filtered accounts + +###Endpoint Version +| | | +|---|--| +|Version|**1** + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|product-category|query|string|optional|Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.| +|open-status|query|string|optional|Used to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed| +|is-owned|query|[Boolean](#common-field-types)|optional|Filters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts| +|page|query|[PositiveInteger](#common-field-types)|optional|Page of results to request (standard pagination)| +|page-size|query|[PositiveInteger](#common-field-types)|optional|Page size to request. Default is 25 (standard pagination)| +|x-v|header|string|mandatory|Version of the API end point requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers)| +|x-min-v|header|string|optional|Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.| +|x-fapi-interaction-id|header|string|optional|An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| +|x-fapi-auth-date|header|string|conditional|The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.| +|x-fapi-customer-ip-address|header|string|optional|The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.| +|x-cds-client-headers|header|[Base64](#common-field-types)|conditional|The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.| + +#### Enumerated Values + +|Parameter|Value| +|---|---| +|product-category|BUSINESS_LOANS| +|product-category|CRED_AND_CHRG_CARDS| +|product-category|LEASES| +|product-category|MARGIN_LOANS| +|product-category|OVERDRAFTS| +|product-category|PERS_LOANS| +|product-category|REGULATED_TRUST_ACCOUNTS| +|product-category|RESIDENTIAL_MORTGAGES| +|product-category|TERM_DEPOSITS| +|product-category|TRADE_FINANCE| +|product-category|TRANS_AND_SAVINGS_ACCOUNTS| +|product-category|TRAVEL_CARDS| +|open-status|ALL| +|open-status|CLOSED| +|open-status|OPEN| + +> Example responses + +> 200 Response + +```json +{ + "data": { + "balances": [ + { + "accountId": "string", + "currentBalance": "string", + "availableBalance": "string", + "creditLimit": "string", + "amortisedLimit": "string", + "currency": "string", + "purses": [ + { + "amount": "string", + "currency": "string" + } + ] + } + ] + }, + "links": { + "self": "string", + "first": "string", + "prev": "string", + "next": "string", + "last": "string" + }, + "meta": { + "totalRecords": 0, + "totalPages": 0 + } +} +``` + +

Responses

+ +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success|[ResponseBankingAccountsBalanceList](#schemacdr-banking-apiresponsebankingaccountsbalancelist)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| +|406|[Not Acceptable](https://tools.ietf.org/html/rfc7231#section-6.5.6)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| +|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| + +### Response Headers + +|Status|Header|Type|Format|Description| +|---|---|---|---|---| +|200|x-v|string||The [version](#response-headers) of the API end point that the data holder has responded with.| +|200|x-fapi-interaction-id|string||An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| +|400|x-fapi-interaction-id|string||An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| +|406|x-fapi-interaction-id|string||An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| +|422|x-fapi-interaction-id|string||An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| + + + + + + + +

Schemas

+ + + + +

ResponseBankingAccountsBalanceList

+ + + +```json +{ + "data": { + "balances": [ + { + "accountId": "string", + "currentBalance": "string", + "availableBalance": "string", + "creditLimit": "string", + "amortisedLimit": "string", + "currency": "string", + "purses": [ + { + "amount": "string", + "currency": "string" + } + ] + } + ] + }, + "links": { + "self": "string", + "first": "string", + "prev": "string", + "next": "string", + "last": "string" + }, + "meta": { + "totalRecords": 0, + "totalPages": 0 + } +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|data|object|mandatory|none| +|» balances|[[BankingBalance](#schemacdr-banking-apibankingbalance)]|mandatory|The list of balances returned| +|links|[LinksPaginated](#schemacdr-banking-apilinkspaginated)|mandatory|none| +|meta|[MetaPaginated](#schemacdr-banking-apimetapaginated)|mandatory|none| + +

ResponseBankingAccountsBalanceById

+ + + +```json +{ + "data": { + "accountId": "string", + "currentBalance": "string", + "availableBalance": "string", + "creditLimit": "string", + "amortisedLimit": "string", + "currency": "string", + "purses": [ + { + "amount": "string", + "currency": "string" + } + ] + }, + "links": { + "self": "string" + }, + "meta": {} +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|data|[BankingBalance](#schemacdr-banking-apibankingbalance)|mandatory|none| +|links|[Links](#schemacdr-banking-apilinks)|mandatory|none| +|meta|[Meta](#schemacdr-banking-apimeta)|optional|none| + +

BankingBalance

+ + + +```json +{ + "accountId": "string", + "currentBalance": "string", + "availableBalance": "string", + "creditLimit": "string", + "amortisedLimit": "string", + "currency": "string", + "purses": [ + { + "amount": "string", + "currency": "string" + } + ] +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|accountId|[ASCIIString](#common-field-types)|mandatory|A unique ID of the account adhering to the standards for ID permanence| +|currentBalance|[AmountString](#common-field-types)|mandatory|The balance of the account at this time. Should align to the balance available via other channels such as Internet Banking. Assumed to be negative if the customer has money owing| +|availableBalance|[AmountString](#common-field-types)|mandatory|Balance representing the amount of funds available for transfer. Assumed to be zero or positive| +|creditLimit|[AmountString](#common-field-types)|optional|Object representing the maximum amount of credit that is available for this account. Assumed to be zero if absent| +|amortisedLimit|[AmountString](#common-field-types)|optional|Object representing the available limit amortised according to payment schedule. Assumed to be zero if absent| +|currency|[CurrencyString](#common-field-types)|optional|The currency for the balance amounts. If absent assumed to be AUD| +|purses|[[BankingBalancePurse](#schemacdr-banking-apibankingbalancepurse)]|optional|Optional array of balances for the account in other currencies. Included to support accounts that support multi-currency purses such as Travel Cards| + +

BankingBalancePurse

+ + + +```json +{ + "amount": "string", + "currency": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|amount|[AmountString](#common-field-types)|mandatory|The balance available for this additional currency purse| +|currency|[CurrencyString](#common-field-types)|optional|The currency for the purse| + + + +

LinksPaginated

+ + + +```json +{ + "self": "string", + "first": "string", + "prev": "string", + "next": "string", + "last": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|self|[URIString](#common-field-types)|mandatory|Fully qualified link that generated the current response document| +|first|[URIString](#common-field-types)|conditional|URI to the first page of this set. Mandatory if this response is not the first page| +|prev|[URIString](#common-field-types)|conditional|URI to the previous page of this set. Mandatory if this response is not the first page| +|next|[URIString](#common-field-types)|conditional|URI to the next page of this set. Mandatory if this response is not the last page| +|last|[URIString](#common-field-types)|conditional|URI to the last page of this set. Mandatory if this response is not the last page| + +

MetaPaginated

+ + + +```json +{ + "totalRecords": 0, + "totalPages": 0 +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|totalRecords|[NaturalNumber](#common-field-types)|mandatory|The total number of records in the full set. See [pagination](#pagination).| +|totalPages|[NaturalNumber](#common-field-types)|mandatory|The total number of pages in the full set. See [pagination](#pagination).| + + + +

MetaError

+ + + +```json +{ + "urn": "string" +} + +``` + +*Additional data for customised error codes* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|urn|string|conditional|The CDR error code URN which the application-specific error code extends. Mandatory if the error `code` is an application-specific error rather than a standardised error code.| + +

ResponseErrorListV2

+ + + +```json +{ + "errors": [ + { + "code": "string", + "title": "string", + "detail": "string", + "meta": { + "urn": "string" + } + } + ] +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|errors|[object]|mandatory|none| +|» code|string|mandatory|The code of the error encountered. Where the error is specific to the respondent, an application-specific error code, expressed as a string value. If the error is application-specific, the URN code that the specific error extends must be provided in the meta object. Otherwise, the value is the error code URN.| +|» title|string|mandatory|A short, human-readable summary of the problem that MUST NOT change from occurrence to occurrence of the problem represented by the error code.| +|» detail|string|mandatory|A human-readable explanation specific to this occurrence of the problem.| +|» meta|[MetaError](#schemacdr-banking-apimetaerror)|optional|Additional data for customised error codes| + +

BankingProductCategory

+ + + +```json +"BUSINESS_LOANS" + +``` + +*The category to which a product or account belongs. See [here](#product-categories) for more details* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|string|mandatory|The category to which a product or account belongs. See [here](#product-categories) for more details| + +#### Enumerated Values + +|Property|Value| +|---|---| +|*anonymous*|BUSINESS_LOANS| +|*anonymous*|CRED_AND_CHRG_CARDS| +|*anonymous*|LEASES| +|*anonymous*|MARGIN_LOANS| +|*anonymous*|OVERDRAFTS| +|*anonymous*|PERS_LOANS| +|*anonymous*|REGULATED_TRUST_ACCOUNTS| +|*anonymous*|RESIDENTIAL_MORTGAGES| +|*anonymous*|TERM_DEPOSITS| +|*anonymous*|TRADE_FINANCE| +|*anonymous*|TRANS_AND_SAVINGS_ACCOUNTS| +|*anonymous*|TRAVEL_CARDS| + diff --git a/slate/source/includes/obsolete/get-bulk-direct-debits-v1.html.md b/slate/source/includes/obsolete/get-bulk-direct-debits-v1.html.md new file mode 100644 index 00000000..5cb12f73 --- /dev/null +++ b/slate/source/includes/obsolete/get-bulk-direct-debits-v1.html.md @@ -0,0 +1,412 @@ +--- +title: Get Bulk Direct Debits v1 + +#language_tabs: # must be one of https://git.io/vQNgJ +# - shell +# - javascript + +toc_footers: + - Consumer Data Standards + +search: false +--- + +# Get Bulk Direct Debits V1 +This page documents the obsolete version 1 of the Get Bulk Direct Debits endpoint. + +This version is to be ceased to be called by data recipients by **Date TBC** and can be decommissioned by data holders as of that date. + + + +## Get Bulk Direct Debits + + + +> Code samples + +```http +GET https://data.holder.com.au/cds-au/v1/banking/accounts/direct-debits HTTP/1.1 +Host: data.holder.com.au +Accept: application/json +x-v: string +x-min-v: string +x-fapi-interaction-id: string +x-fapi-auth-date: string +x-fapi-customer-ip-address: string +x-cds-client-headers: string + +``` + +```javascript--nodejs +const fetch = require('node-fetch'); + +const headers = { + 'Accept':'application/json', + 'x-v':'string', + 'x-min-v':'string', + 'x-fapi-interaction-id':'string', + 'x-fapi-auth-date':'string', + 'x-fapi-customer-ip-address':'string', + 'x-cds-client-headers':'string' + +}; + +fetch('https://data.holder.com.au/cds-au/v1/banking/accounts/direct-debits', +{ + method: 'GET', + + headers: headers +}) +.then(function(res) { + return res.json(); +}).then(function(body) { + console.log(body); +}); + +``` + +`GET /banking/accounts/direct-debits` + +Obtain direct debit authorisations for multiple, filtered accounts + +###Endpoint Version +| | | +|---|--| +|Version|**1** + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|product-category|query|string|optional|Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.| +|open-status|query|string|optional|Used to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed| +|is-owned|query|[Boolean](#common-field-types)|optional|Filters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts| +|page|query|[PositiveInteger](#common-field-types)|optional|Page of results to request (standard pagination)| +|page-size|query|[PositiveInteger](#common-field-types)|optional|Page size to request. Default is 25 (standard pagination)| +|x-v|header|string|mandatory|Version of the API end point requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers)| +|x-min-v|header|string|optional|Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.| +|x-fapi-interaction-id|header|string|optional|An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| +|x-fapi-auth-date|header|string|conditional|The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.| +|x-fapi-customer-ip-address|header|string|optional|The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.| +|x-cds-client-headers|header|[Base64](#common-field-types)|conditional|The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.| + +#### Enumerated Values + +|Parameter|Value| +|---|---| +|product-category|BUSINESS_LOANS| +|product-category|CRED_AND_CHRG_CARDS| +|product-category|LEASES| +|product-category|MARGIN_LOANS| +|product-category|OVERDRAFTS| +|product-category|PERS_LOANS| +|product-category|REGULATED_TRUST_ACCOUNTS| +|product-category|RESIDENTIAL_MORTGAGES| +|product-category|TERM_DEPOSITS| +|product-category|TRADE_FINANCE| +|product-category|TRANS_AND_SAVINGS_ACCOUNTS| +|product-category|TRAVEL_CARDS| +|open-status|ALL| +|open-status|CLOSED| +|open-status|OPEN| + +> Example responses + +> 200 Response + +```json +{ + "data": { + "directDebitAuthorisations": [ + { + "accountId": "string", + "authorisedEntity": { + "description": "string", + "financialInstitution": "string", + "abn": "string", + "acn": "string", + "arbn": "string" + }, + "lastDebitDateTime": "string", + "lastDebitAmount": "string" + } + ] + }, + "links": { + "self": "string", + "first": "string", + "prev": "string", + "next": "string", + "last": "string" + }, + "meta": { + "totalRecords": 0, + "totalPages": 0 + } +} +``` + +

Responses

+ +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success|[ResponseBankingDirectDebitAuthorisationList](#schemacdr-banking-apiresponsebankingdirectdebitauthorisationlist)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| +|406|[Not Acceptable](https://tools.ietf.org/html/rfc7231#section-6.5.6)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| +|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| + +### Response Headers + +|Status|Header|Type|Format|Description| +|---|---|---|---|---| +|200|x-v|string||The [version](#response-headers) of the API end point that the data holder has responded with.| +|200|x-fapi-interaction-id|string||An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| +|400|x-fapi-interaction-id|string||An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| +|406|x-fapi-interaction-id|string||An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| +|422|x-fapi-interaction-id|string||An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| + + + + + + + +

Schemas

+ + + + +

ResponseBankingDirectDebitAuthorisationList

+ + + +```json +{ + "data": { + "directDebitAuthorisations": [ + { + "accountId": "string", + "authorisedEntity": { + "description": "string", + "financialInstitution": "string", + "abn": "string", + "acn": "string", + "arbn": "string" + }, + "lastDebitDateTime": "string", + "lastDebitAmount": "string" + } + ] + }, + "links": { + "self": "string", + "first": "string", + "prev": "string", + "next": "string", + "last": "string" + }, + "meta": { + "totalRecords": 0, + "totalPages": 0 + } +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|data|object|mandatory|none| +|» directDebitAuthorisations|[[BankingDirectDebit](#schemacdr-banking-apibankingdirectdebit)]|mandatory|The list of authorisations returned| +|links|[LinksPaginated](#schemacdr-banking-apilinkspaginated)|mandatory|none| +|meta|[MetaPaginated](#schemacdr-banking-apimetapaginated)|mandatory|none| + +

BankingDirectDebit

+ + + +```json +{ + "accountId": "string", + "authorisedEntity": { + "description": "string", + "financialInstitution": "string", + "abn": "string", + "acn": "string", + "arbn": "string" + }, + "lastDebitDateTime": "string", + "lastDebitAmount": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|accountId|[ASCIIString](#common-field-types)|mandatory|A unique ID of the account adhering to the standards for ID permanence.| +|authorisedEntity|[BankingAuthorisedEntity](#schemacdr-banking-apibankingauthorisedentity)|mandatory|none| +|lastDebitDateTime|[DateTimeString](#common-field-types)|optional|The date and time of the last debit executed under this authorisation| +|lastDebitAmount|[AmountString](#common-field-types)|optional|The amount of the last debit executed under this authorisation| + +

BankingAuthorisedEntity

+ + + +```json +{ + "description": "string", + "financialInstitution": "string", + "abn": "string", + "acn": "string", + "arbn": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|description|string|optional|Description of the authorised entity derived from previously executed direct debits| +|financialInstitution|string|conditional|Name of the financial institution through which the direct debit will be executed. Is required unless the payment is made via a credit card scheme| +|abn|string|optional|Australian Business Number for the authorised entity| +|acn|string|optional|Australian Company Number for the authorised entity| +|arbn|string|optional|Australian Registered Body Number for the authorised entity| + + + +

LinksPaginated

+ + + +```json +{ + "self": "string", + "first": "string", + "prev": "string", + "next": "string", + "last": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|self|[URIString](#common-field-types)|mandatory|Fully qualified link that generated the current response document| +|first|[URIString](#common-field-types)|conditional|URI to the first page of this set. Mandatory if this response is not the first page| +|prev|[URIString](#common-field-types)|conditional|URI to the previous page of this set. Mandatory if this response is not the first page| +|next|[URIString](#common-field-types)|conditional|URI to the next page of this set. Mandatory if this response is not the last page| +|last|[URIString](#common-field-types)|conditional|URI to the last page of this set. Mandatory if this response is not the last page| + +

MetaPaginated

+ + + +```json +{ + "totalRecords": 0, + "totalPages": 0 +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|totalRecords|[NaturalNumber](#common-field-types)|mandatory|The total number of records in the full set. See [pagination](#pagination).| +|totalPages|[NaturalNumber](#common-field-types)|mandatory|The total number of pages in the full set. See [pagination](#pagination).| + + + +

MetaError

+ + + +```json +{ + "urn": "string" +} + +``` + +*Additional data for customised error codes* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|urn|string|conditional|The CDR error code URN which the application-specific error code extends. Mandatory if the error `code` is an application-specific error rather than a standardised error code.| + +

ResponseErrorListV2

+ + + +```json +{ + "errors": [ + { + "code": "string", + "title": "string", + "detail": "string", + "meta": { + "urn": "string" + } + } + ] +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|errors|[object]|mandatory|none| +|» code|string|mandatory|The code of the error encountered. Where the error is specific to the respondent, an application-specific error code, expressed as a string value. If the error is application-specific, the URN code that the specific error extends must be provided in the meta object. Otherwise, the value is the error code URN.| +|» title|string|mandatory|A short, human-readable summary of the problem that MUST NOT change from occurrence to occurrence of the problem represented by the error code.| +|» detail|string|mandatory|A human-readable explanation specific to this occurrence of the problem.| +|» meta|[MetaError](#schemacdr-banking-apimetaerror)|optional|Additional data for customised error codes| + +

BankingProductCategory

+ + + +```json +"BUSINESS_LOANS" + +``` + +*The category to which a product or account belongs. See [here](#product-categories) for more details* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|string|mandatory|The category to which a product or account belongs. See [here](#product-categories) for more details| + +#### Enumerated Values + +|Property|Value| +|---|---| +|*anonymous*|BUSINESS_LOANS| +|*anonymous*|CRED_AND_CHRG_CARDS| +|*anonymous*|LEASES| +|*anonymous*|MARGIN_LOANS| +|*anonymous*|OVERDRAFTS| +|*anonymous*|PERS_LOANS| +|*anonymous*|REGULATED_TRUST_ACCOUNTS| +|*anonymous*|RESIDENTIAL_MORTGAGES| +|*anonymous*|TERM_DEPOSITS| +|*anonymous*|TRADE_FINANCE| +|*anonymous*|TRANS_AND_SAVINGS_ACCOUNTS| +|*anonymous*|TRAVEL_CARDS| + diff --git a/slate/source/includes/obsolete/get-product-detail-v4.html.md b/slate/source/includes/obsolete/get-product-detail-v4.html.md new file mode 100644 index 00000000..0aa1ba35 --- /dev/null +++ b/slate/source/includes/obsolete/get-product-detail-v4.html.md @@ -0,0 +1,1745 @@ +--- +title: Get Product Detail v4 + +#language_tabs: # must be one of https://git.io/vQNgJ +# - shell +# - javascript + +toc_footers: + - Consumer Data Standards + +search: false +--- + +# Get Product Detail V4 +This page documents the obsolete version 4 of the Get Product Detail endpoint. + +This version is to be ceased to be called by data recipients by **Date TBC** and can be decommissioned by data holders as of that date. + + +## Get Product Detail + + + +> Code samples + +```http +GET https://data.holder.com.au/cds-au/v1/banking/products/{productId} HTTP/1.1 +Host: data.holder.com.au +Accept: application/json +x-v: string +x-min-v: string + +``` + +```javascript--nodejs +const fetch = require('node-fetch'); + +const headers = { + 'Accept':'application/json', + 'x-v':'string', + 'x-min-v':'string' + +}; + +fetch('https://data.holder.com.au/cds-au/v1/banking/products/{productId}', +{ + method: 'GET', + + headers: headers +}) +.then(function(res) { + return res.json(); +}).then(function(body) { + console.log(body); +}); + +``` + +`GET /banking/products/{productId}` + +Obtain detailed information on a single product offered openly to the market. + +Obsolete versions: [v1](../../includes/obsolete/get-product-detail-v1.html), [v2](../../includes/obsolete/get-product-detail-v2.html), [v3](../../includes/obsolete/get-product-detail-v3.html) + +###Endpoint Version +| | | +|---|--| +|Version|**4** + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|productId|path|[ASCIIString](#common-field-types)|mandatory|ID of the specific product requested| +|x-v|header|string|mandatory|Version of the API end point requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers)| +|x-min-v|header|string|optional|Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.| + +> Example responses + +> 200 Response + +```json +{ + "data": { + "productId": "string", + "effectiveFrom": "string", + "effectiveTo": "string", + "lastUpdated": "string", + "productCategory": "BUSINESS_LOANS", + "name": "string", + "description": "string", + "brand": "string", + "brandName": "string", + "applicationUri": "string", + "isTailored": true, + "additionalInformation": { + "overviewUri": "string", + "termsUri": "string", + "eligibilityUri": "string", + "feesAndPricingUri": "string", + "bundleUri": "string", + "additionalOverviewUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalTermsUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalEligibilityUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalFeesAndPricingUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalBundleUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ] + }, + "cardArt": [ + { + "title": "string", + "imageUri": "string" + } + ], + "bundles": [ + { + "name": "string", + "description": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "productIds": [ + "string" + ] + } + ], + "features": [ + { + "featureType": "ADDITIONAL_CARDS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "constraints": [ + { + "constraintType": "MAX_BALANCE", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "eligibility": [ + { + "eligibilityType": "BUSINESS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "fees": [ + { + "name": "string", + "feeType": "DEPOSIT", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "accrualFrequency": "string", + "currency": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "discounts": [ + { + "description": "string", + "discountType": "BALANCE", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "feeRate": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "eligibility": [ + { + "discountEligibilityType": "BUSINESS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ] + } + ] + } + ], + "depositRates": [ + { + "depositRateType": "BONUS", + "rate": "string", + "calculationFrequency": "string", + "applicationFrequency": "string", + "tiers": [ + { + "name": "string", + "unitOfMeasure": "DAY", + "minimumValue": 0, + "maximumValue": 0, + "rateApplicationMethod": "PER_TIER", + "applicabilityConditions": { + "additionalInfo": "string", + "additionalInfoUri": "string" + }, + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "lendingRates": [ + { + "lendingRateType": "BUNDLE_DISCOUNT_FIXED", + "rate": "string", + "comparisonRate": "string", + "calculationFrequency": "string", + "applicationFrequency": "string", + "interestPaymentDue": "IN_ADVANCE", + "repaymentType": "INTEREST_ONLY", + "loanPurpose": "INVESTMENT", + "tiers": [ + { + "name": "string", + "unitOfMeasure": "DAY", + "minimumValue": 0, + "maximumValue": 0, + "rateApplicationMethod": "PER_TIER", + "applicabilityConditions": { + "additionalInfo": "string", + "additionalInfoUri": "string" + }, + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ] + }, + "links": { + "self": "string" + }, + "meta": {} +} +``` + +

Responses

+ +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success|[ResponseBankingProductByIdV4](#schemacdr-banking-apiresponsebankingproductbyidv4)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| +|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| +|406|[Not Acceptable](https://tools.ietf.org/html/rfc7231#section-6.5.6)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| + +### Response Headers + +|Status|Header|Type|Format|Description| +|---|---|---|---|---| +|200|x-v|string||The [version](#response-headers) of the API end point that the data holder has responded with.| + + + + + + +

Schemas

+ + + + +

BankingProductV4

+ + + +```json +{ + "productId": "string", + "effectiveFrom": "string", + "effectiveTo": "string", + "lastUpdated": "string", + "productCategory": "BUSINESS_LOANS", + "name": "string", + "description": "string", + "brand": "string", + "brandName": "string", + "applicationUri": "string", + "isTailored": true, + "additionalInformation": { + "overviewUri": "string", + "termsUri": "string", + "eligibilityUri": "string", + "feesAndPricingUri": "string", + "bundleUri": "string", + "additionalOverviewUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalTermsUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalEligibilityUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalFeesAndPricingUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalBundleUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ] + }, + "cardArt": [ + { + "title": "string", + "imageUri": "string" + } + ] +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|productId|[ASCIIString](#common-field-types)|mandatory|A data holder specific unique identifier for this product. This identifier must be unique to a product but does not otherwise need to adhere to ID permanence guidelines.| +|effectiveFrom|[DateTimeString](#common-field-types)|optional|The date and time from which this product is effective (ie. is available for origination). Used to enable the articulation of products to the regime before they are available for customers to originate| +|effectiveTo|[DateTimeString](#common-field-types)|optional|The date and time at which this product will be retired and will no longer be offered. Used to enable the managed deprecation of products| +|lastUpdated|[DateTimeString](#common-field-types)|mandatory|The last date and time that the information for this product was changed (or the creation date for the product if it has never been altered)| +|productCategory|[BankingProductCategory](#schemacdr-banking-apibankingproductcategory)|mandatory|The category to which a product or account belongs. See [here](#product-categories) for more details| +|name|string|mandatory|The display name of the product| +|description|string|mandatory|A description of the product| +|brand|string|mandatory|A label of the brand for the product. Able to be used for filtering. For data holders with single brands this value is still required| +|brandName|string|optional|An optional display name of the brand| +|applicationUri|[URIString](#common-field-types)|optional|A link to an application web page where this product can be applied for.| +|isTailored|[Boolean](#common-field-types)|mandatory|Indicates whether the product is specifically tailored to a circumstance. In this case fees and prices are significantly negotiated depending on context. While all products are open to a degree of tailoring this flag indicates that tailoring is expected and thus that the provision of specific fees and rates is not applicable| +|additionalInformation|[BankingProductAdditionalInformationV2](#schemacdr-banking-apibankingproductadditionalinformationv2)|optional|Object that contains links to additional information on specific topics| +|cardArt|[object]|optional|An array of card art images| +|» title|string|optional|Display label for the specific image| +|» imageUri|[URIString](#common-field-types)|mandatory|URI reference to a PNG, JPG or GIF image with proportions defined by ISO 7810 ID-1 and width no greater than 512 pixels. The URI reference may be a link or url-encoded data URI according to **[[RFC2397]](#nref-RFC2397)**| + +

BankingProductAdditionalInformationV2

+ + + +```json +{ + "overviewUri": "string", + "termsUri": "string", + "eligibilityUri": "string", + "feesAndPricingUri": "string", + "bundleUri": "string", + "additionalOverviewUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalTermsUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalEligibilityUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalFeesAndPricingUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalBundleUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ] +} + +``` + +*Object that contains links to additional information on specific topics* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|overviewUri|[URIString](#common-field-types)|conditional|General overview of the product. Mandatory if `additionalOverviewUris` includes one or more supporting documents.| +|termsUri|[URIString](#common-field-types)|conditional|Terms and conditions for the product. Mandatory if `additionalTermsUris` includes one or more supporting documents.| +|eligibilityUri|[URIString](#common-field-types)|conditional|Eligibility rules and criteria for the product. Mandatory if `additionalEligibilityUris` includes one or more supporting documents.| +|feesAndPricingUri|[URIString](#common-field-types)|conditional|Description of fees, pricing, discounts, exemptions and bonuses for the product. Mandatory if `additionalFeesAndPricingUris` includes one or more supporting documents.| +|bundleUri|[URIString](#common-field-types)|conditional|Description of a bundle that this product can be part of. Mandatory if `additionalBundleUris` includes one or more supporting documents.| +|additionalOverviewUris|[[BankingProductAdditionalInformationV2_additionalInformationUris](#schemacdr-banking-apibankingproductadditionalinformationv2_additionalinformationuris)]|optional|An array of additional general overviews for the product or features of the product, if applicable. To be treated as secondary documents to the `overviewUri`. Only to be used if there is a primary `overviewUri`.| +|additionalTermsUris|[[BankingProductAdditionalInformationV2_additionalInformationUris](#schemacdr-banking-apibankingproductadditionalinformationv2_additionalinformationuris)]|optional|An array of additional terms and conditions for the product, if applicable. To be treated as secondary documents to the `termsUri`. Only to be used if there is a primary `termsUri`.| +|additionalEligibilityUris|[[BankingProductAdditionalInformationV2_additionalInformationUris](#schemacdr-banking-apibankingproductadditionalinformationv2_additionalinformationuris)]|optional|An array of additional eligibility rules and criteria for the product, if applicable. To be treated as secondary documents to the `eligibilityUri`. Only to be used if there is a primary `eligibilityUri`.| +|additionalFeesAndPricingUris|[[BankingProductAdditionalInformationV2_additionalInformationUris](#schemacdr-banking-apibankingproductadditionalinformationv2_additionalinformationuris)]|optional|An array of additional fees, pricing, discounts, exemptions and bonuses for the product, if applicable. To be treated as secondary documents to the `feesAndPricingUri`. Only to be used if there is a primary `feesAndPricingUri`.| +|additionalBundleUris|[[BankingProductAdditionalInformationV2_additionalInformationUris](#schemacdr-banking-apibankingproductadditionalinformationv2_additionalinformationuris)]|optional|An array of additional bundles for the product, if applicable. To be treated as secondary documents to the `bundleUri`. Only to be used if there is a primary `bundleUri`.| + +

BankingProductAdditionalInformationV2_additionalInformationUris

+ + + +```json +{ + "description": "string", + "additionalInfoUri": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|description|string|optional|Display text providing more information about the document URI| +|additionalInfoUri|[URIString](#common-field-types)|mandatory|The URI describing the additional information| + +

ResponseBankingProductByIdV4

+ + + +```json +{ + "data": { + "productId": "string", + "effectiveFrom": "string", + "effectiveTo": "string", + "lastUpdated": "string", + "productCategory": "BUSINESS_LOANS", + "name": "string", + "description": "string", + "brand": "string", + "brandName": "string", + "applicationUri": "string", + "isTailored": true, + "additionalInformation": { + "overviewUri": "string", + "termsUri": "string", + "eligibilityUri": "string", + "feesAndPricingUri": "string", + "bundleUri": "string", + "additionalOverviewUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalTermsUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalEligibilityUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalFeesAndPricingUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalBundleUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ] + }, + "cardArt": [ + { + "title": "string", + "imageUri": "string" + } + ], + "bundles": [ + { + "name": "string", + "description": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "productIds": [ + "string" + ] + } + ], + "features": [ + { + "featureType": "ADDITIONAL_CARDS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "constraints": [ + { + "constraintType": "MAX_BALANCE", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "eligibility": [ + { + "eligibilityType": "BUSINESS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "fees": [ + { + "name": "string", + "feeType": "DEPOSIT", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "accrualFrequency": "string", + "currency": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "discounts": [ + { + "description": "string", + "discountType": "BALANCE", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "feeRate": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "eligibility": [ + { + "discountEligibilityType": "BUSINESS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ] + } + ] + } + ], + "depositRates": [ + { + "depositRateType": "BONUS", + "rate": "string", + "calculationFrequency": "string", + "applicationFrequency": "string", + "tiers": [ + { + "name": "string", + "unitOfMeasure": "DAY", + "minimumValue": 0, + "maximumValue": 0, + "rateApplicationMethod": "PER_TIER", + "applicabilityConditions": { + "additionalInfo": "string", + "additionalInfoUri": "string" + }, + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "lendingRates": [ + { + "lendingRateType": "BUNDLE_DISCOUNT_FIXED", + "rate": "string", + "comparisonRate": "string", + "calculationFrequency": "string", + "applicationFrequency": "string", + "interestPaymentDue": "IN_ADVANCE", + "repaymentType": "INTEREST_ONLY", + "loanPurpose": "INVESTMENT", + "tiers": [ + { + "name": "string", + "unitOfMeasure": "DAY", + "minimumValue": 0, + "maximumValue": 0, + "rateApplicationMethod": "PER_TIER", + "applicabilityConditions": { + "additionalInfo": "string", + "additionalInfoUri": "string" + }, + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ] + }, + "links": { + "self": "string" + }, + "meta": {} +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|data|[BankingProductDetailV4](#schemacdr-banking-apibankingproductdetailv4)|mandatory|none| +|links|[Links](#schemacdr-banking-apilinks)|mandatory|none| +|meta|[Meta](#schemacdr-banking-apimeta)|optional|none| + +

BankingProductDetailV4

+ + + +```json +{ + "productId": "string", + "effectiveFrom": "string", + "effectiveTo": "string", + "lastUpdated": "string", + "productCategory": "BUSINESS_LOANS", + "name": "string", + "description": "string", + "brand": "string", + "brandName": "string", + "applicationUri": "string", + "isTailored": true, + "additionalInformation": { + "overviewUri": "string", + "termsUri": "string", + "eligibilityUri": "string", + "feesAndPricingUri": "string", + "bundleUri": "string", + "additionalOverviewUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalTermsUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalEligibilityUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalFeesAndPricingUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalBundleUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ] + }, + "cardArt": [ + { + "title": "string", + "imageUri": "string" + } + ], + "bundles": [ + { + "name": "string", + "description": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "productIds": [ + "string" + ] + } + ], + "features": [ + { + "featureType": "ADDITIONAL_CARDS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "constraints": [ + { + "constraintType": "MAX_BALANCE", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "eligibility": [ + { + "eligibilityType": "BUSINESS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "fees": [ + { + "name": "string", + "feeType": "DEPOSIT", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "accrualFrequency": "string", + "currency": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "discounts": [ + { + "description": "string", + "discountType": "BALANCE", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "feeRate": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "eligibility": [ + { + "discountEligibilityType": "BUSINESS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ] + } + ] + } + ], + "depositRates": [ + { + "depositRateType": "BONUS", + "rate": "string", + "calculationFrequency": "string", + "applicationFrequency": "string", + "tiers": [ + { + "name": "string", + "unitOfMeasure": "DAY", + "minimumValue": 0, + "maximumValue": 0, + "rateApplicationMethod": "PER_TIER", + "applicabilityConditions": { + "additionalInfo": "string", + "additionalInfoUri": "string" + }, + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "lendingRates": [ + { + "lendingRateType": "BUNDLE_DISCOUNT_FIXED", + "rate": "string", + "comparisonRate": "string", + "calculationFrequency": "string", + "applicationFrequency": "string", + "interestPaymentDue": "IN_ADVANCE", + "repaymentType": "INTEREST_ONLY", + "loanPurpose": "INVESTMENT", + "tiers": [ + { + "name": "string", + "unitOfMeasure": "DAY", + "minimumValue": 0, + "maximumValue": 0, + "rateApplicationMethod": "PER_TIER", + "applicabilityConditions": { + "additionalInfo": "string", + "additionalInfoUri": "string" + }, + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ] +} + +``` + +### Properties + +*allOf* + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[BankingProductV4](#schemacdr-banking-apibankingproductv4)|mandatory|none| + +*and* + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|mandatory|none| +|» bundles|[[BankingProductBundle](#schemacdr-banking-apibankingproductbundle)]|optional|An array of bundles that this product participates in. Each bundle is described by free form information but also by a list of product IDs of the other products that are included in the bundle. It is assumed that the current product is included in the bundle also| +|» features|[[BankingProductFeatureV2](#schemacdr-banking-apibankingproductfeaturev2)]|optional|Array of features available for the product| +|» constraints|[[BankingProductConstraint](#schemacdr-banking-apibankingproductconstraint)]|optional|Constraints on the application for or operation of the product such as minimum balances or limit thresholds| +|» eligibility|[[BankingProductEligibility](#schemacdr-banking-apibankingproducteligibility)]|optional|Eligibility criteria for the product| +|» fees|[[BankingProductFee](#schemacdr-banking-apibankingproductfee)]|optional|Fees applicable for the product| +|» depositRates|[[BankingProductDepositRate](#schemacdr-banking-apibankingproductdepositrate)]|optional|Interest rates available for deposits| +|» lendingRates|[[BankingProductLendingRateV2](#schemacdr-banking-apibankingproductlendingratev2)]|optional|Interest rates charged against lending balances| + +

BankingProductBundle

+ + + +```json +{ + "name": "string", + "description": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "productIds": [ + "string" + ] +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|name|string|mandatory|Name of the bundle| +|description|string|mandatory|Description of the bundle| +|additionalInfo|string|optional|Display text providing more information on the bundle| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on the bundle criteria and benefits| +|productIds|[string]|optional|Array of product IDs for products included in the bundle that are available via the product end points. Note that this array is not intended to represent a comprehensive model of the products included in the bundle and some products available for the bundle may not be available via the product reference end points| + +

BankingProductFeatureV2

+ + + +```json +{ + "featureType": "ADDITIONAL_CARDS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|featureType|string|mandatory|The type of feature described| +|additionalValue|string|conditional|Generic field containing additional information relevant to the [featureType](#tocSproductfeaturetypedoc) specified. Whether mandatory or not is dependent on the value of the [featureType.](#tocSproductfeaturetypedoc)| +|additionalInfo|string|conditional|Display text providing more information on the feature. Mandatory if the [feature type](#tocSproductfeaturetypedoc) is set to OTHER| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this feature| + +#### Enumerated Values + +|Property|Value| +|---|---| +|featureType|ADDITIONAL_CARDS| +|featureType|BALANCE_TRANSFERS| +|featureType|BILL_PAYMENT| +|featureType|BONUS_REWARDS| +|featureType|CARD_ACCESS| +|featureType|CASHBACK_OFFER| +|featureType|COMPLEMENTARY_PRODUCT_DISCOUNTS| +|featureType|DIGITAL_BANKING| +|featureType|DIGITAL_WALLET| +|featureType|DONATE_INTEREST| +|featureType|EXTRA_REPAYMENTS| +|featureType|FRAUD_PROTECTION| +|featureType|FREE_TXNS| +|featureType|FREE_TXNS_ALLOWANCE| +|featureType|GUARANTOR| +|featureType|INSURANCE| +|featureType|INSTALMENT_PLAN| +|featureType|INTEREST_FREE| +|featureType|INTEREST_FREE_TRANSFERS| +|featureType|LOYALTY_PROGRAM| +|featureType|NOTIFICATIONS| +|featureType|NPP_ENABLED| +|featureType|NPP_PAYID| +|featureType|OFFSET| +|featureType|OTHER| +|featureType|OVERDRAFT| +|featureType|REDRAW| +|featureType|RELATIONSHIP_MANAGEMENT| +|featureType|UNLIMITED_TXNS| + +

BankingProductConstraint

+ + + +```json +{ + "constraintType": "MAX_BALANCE", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|constraintType|string|mandatory|The type of constraint described. See the next section for an overview of valid values and their meaning| +|additionalValue|string|conditional|Generic field containing additional information relevant to the [constraintType](#tocSproductconstrainttypedoc) specified. Whether mandatory or not is dependent on the value of [constraintType](#tocSproductconstrainttypedoc)| +|additionalInfo|string|optional|Display text providing more information the constraint| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on the constraint| + +#### Enumerated Values + +|Property|Value| +|---|---| +|constraintType|MAX_BALANCE| +|constraintType|MAX_LIMIT| +|constraintType|MIN_BALANCE| +|constraintType|MIN_LIMIT| +|constraintType|OPENING_BALANCE| + +

BankingProductEligibility

+ + + +```json +{ + "eligibilityType": "BUSINESS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|eligibilityType|string|mandatory|The type of eligibility criteria described. See the next section for an overview of valid values and their meaning| +|additionalValue|string|conditional|Generic field containing additional information relevant to the [eligibilityType](#tocSproducteligibilitytypedoc) specified. Whether mandatory or not is dependent on the value of [eligibilityType](#tocSproducteligibilitytypedoc)| +|additionalInfo|string|conditional|Display text providing more information on the [eligibility](#tocSproducteligibilitytypedoc) criteria. Mandatory if the field is set to OTHER| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this eligibility criteria| + +#### Enumerated Values + +|Property|Value| +|---|---| +|eligibilityType|BUSINESS| +|eligibilityType|EMPLOYMENT_STATUS| +|eligibilityType|MAX_AGE| +|eligibilityType|MIN_AGE| +|eligibilityType|MIN_INCOME| +|eligibilityType|MIN_TURNOVER| +|eligibilityType|NATURAL_PERSON| +|eligibilityType|OTHER| +|eligibilityType|PENSION_RECIPIENT| +|eligibilityType|RESIDENCY_STATUS| +|eligibilityType|STAFF| +|eligibilityType|STUDENT| + +

BankingProductFee

+ + + +```json +{ + "name": "string", + "feeType": "DEPOSIT", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "accrualFrequency": "string", + "currency": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "discounts": [ + { + "description": "string", + "discountType": "BALANCE", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "feeRate": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "eligibility": [ + { + "discountEligibilityType": "BUSINESS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ] + } + ] +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|name|string|mandatory|Name of the fee| +|feeType|string|mandatory|The type of fee| +|amount|[AmountString](#common-field-types)|conditional|The amount charged for the fee. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* "VARIABLE" is supplied| +|balanceRate|[RateString](#common-field-types)|conditional|A fee rate calculated based on a proportion of the balance. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* "VARIABLE" is supplied.| +|transactionRate|[RateString](#common-field-types)|conditional|A fee rate calculated based on a proportion of a transaction. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* "VARIABLE" is supplied| +|accruedRate|[RateString](#common-field-types)|conditional|A fee rate calculated based on a proportion of the calculated interest accrued on the account. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* "VARIABLE" is supplied| +|accrualFrequency|[ExternalRef](#common-field-types)|optional|The indicative frequency with which the fee is calculated on the account. Only applies if balanceRate or accruedRate is also present. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)| +|currency|[CurrencyString](#common-field-types)|optional|The currency the fee will be charged in. Assumes AUD if absent| +|additionalValue|string|conditional|Generic field containing additional information relevant to the [feeType](#tocSproductfeetypedoc) specified. Whether mandatory or not is dependent on the value of [feeType](#tocSproductfeetypedoc)| +|additionalInfo|string|optional|Display text providing more information on the fee| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this fee| +|discounts|[[BankingProductDiscount](#schemacdr-banking-apibankingproductdiscount)]|optional|An optional list of discounts to this fee that may be available| + +#### Enumerated Values + +|Property|Value| +|---|---| +|feeType|DEPOSIT| +|feeType|EVENT| +|feeType|EXIT| +|feeType|PAYMENT| +|feeType|PERIODIC| +|feeType|PURCHASE| +|feeType|TRANSACTION| +|feeType|UPFRONT| +|feeType|VARIABLE| +|feeType|WITHDRAWAL| + +

BankingProductDiscount

+ + + +```json +{ + "description": "string", + "discountType": "BALANCE", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "feeRate": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "eligibility": [ + { + "discountEligibilityType": "BUSINESS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ] +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|description|string|mandatory|Description of the discount| +|discountType|string|mandatory|The type of discount. See the next section for an overview of valid values and their meaning| +|amount|[AmountString](#common-field-types)|conditional|Dollar value of the discount. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory.| +|balanceRate|[RateString](#common-field-types)|conditional|A discount rate calculated based on a proportion of the balance. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee| +|transactionRate|[RateString](#common-field-types)|conditional|A discount rate calculated based on a proportion of a transaction. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory| +|accruedRate|[RateString](#common-field-types)|conditional|A discount rate calculated based on a proportion of the calculated interest accrued on the account. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee| +|feeRate|[RateString](#common-field-types)|conditional|A discount rate calculated based on a proportion of the fee to which this discount is attached. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee| +|additionalValue|string|conditional|Generic field containing additional information relevant to the [discountType](#tocSproductdiscounttypedoc) specified. Whether mandatory or not is dependent on the value of [discountType](#tocSproductdiscounttypedoc)| +|additionalInfo|string|optional|Display text providing more information on the discount| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this discount| +|eligibility|[[BankingProductDiscountEligibility](#schemacdr-banking-apibankingproductdiscounteligibility)]|conditional|Eligibility constraints that apply to this discount. Mandatory if ``discountType`` is ``ELIGIBILITY_ONLY``.| + +#### Enumerated Values + +|Property|Value| +|---|---| +|discountType|BALANCE| +|discountType|DEPOSITS| +|discountType|ELIGIBILITY_ONLY| +|discountType|FEE_CAP| +|discountType|PAYMENTS| + +

BankingProductDiscountEligibility

+ + + +```json +{ + "discountEligibilityType": "BUSINESS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|discountEligibilityType|string|mandatory|The type of the specific eligibility constraint for a discount| +|additionalValue|string|conditional|Generic field containing additional information relevant to the [discountEligibilityType](#tocSproductdiscounteligibilitydoc) specified. Whether mandatory or not is dependent on the value of [discountEligibilityType](#tocSproductdiscounteligibilitydoc)| +|additionalInfo|string|conditional|Display text providing more information on this eligibility constraint. Whether mandatory or not is dependent on the value of [discountEligibilityType](#tocSproductdiscounteligibilitydoc)| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this eligibility constraint| + +#### Enumerated Values + +|Property|Value| +|---|---| +|discountEligibilityType|BUSINESS| +|discountEligibilityType|EMPLOYMENT_STATUS| +|discountEligibilityType|INTRODUCTORY| +|discountEligibilityType|MAX_AGE| +|discountEligibilityType|MIN_AGE| +|discountEligibilityType|MIN_INCOME| +|discountEligibilityType|MIN_TURNOVER| +|discountEligibilityType|NATURAL_PERSON| +|discountEligibilityType|OTHER| +|discountEligibilityType|PENSION_RECIPIENT| +|discountEligibilityType|RESIDENCY_STATUS| +|discountEligibilityType|STAFF| +|discountEligibilityType|STUDENT| + +

BankingProductDepositRate

+ + + +```json +{ + "depositRateType": "BONUS", + "rate": "string", + "calculationFrequency": "string", + "applicationFrequency": "string", + "tiers": [ + { + "name": "string", + "unitOfMeasure": "DAY", + "minimumValue": 0, + "maximumValue": 0, + "rateApplicationMethod": "PER_TIER", + "applicabilityConditions": { + "additionalInfo": "string", + "additionalInfoUri": "string" + }, + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|depositRateType|string|mandatory|The type of rate (base, bonus, etc). See the next section for an overview of valid values and their meaning| +|rate|[RateString](#common-field-types)|mandatory|The rate to be applied| +|calculationFrequency|[ExternalRef](#common-field-types)|optional|The period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see applicationFrequency). Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)| +|applicationFrequency|[ExternalRef](#common-field-types)|optional|The period after which the calculated amount(s) (see calculationFrequency) are 'applied' (i.e. debited or credited) to the account. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)| +|tiers|[[BankingProductRateTierV3](#schemacdr-banking-apibankingproductratetierv3)]|optional|Rate tiers applicable for this rate| +|additionalValue|string|conditional|Generic field containing additional information relevant to the [depositRateType](#tocSproductdepositratetypedoc) specified. Whether mandatory or not is dependent on the value of [depositRateType](#tocSproductdepositratetypedoc)| +|additionalInfo|string|optional|Display text providing more information on the rate| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this rate| + +#### Enumerated Values + +|Property|Value| +|---|---| +|depositRateType|BONUS| +|depositRateType|BUNDLE_BONUS| +|depositRateType|FIXED| +|depositRateType|FLOATING| +|depositRateType|INTRODUCTORY| +|depositRateType|MARKET_LINKED| +|depositRateType|VARIABLE| + +

BankingProductLendingRateV2

+ + + +```json +{ + "lendingRateType": "BUNDLE_DISCOUNT_FIXED", + "rate": "string", + "comparisonRate": "string", + "calculationFrequency": "string", + "applicationFrequency": "string", + "interestPaymentDue": "IN_ADVANCE", + "repaymentType": "INTEREST_ONLY", + "loanPurpose": "INVESTMENT", + "tiers": [ + { + "name": "string", + "unitOfMeasure": "DAY", + "minimumValue": 0, + "maximumValue": 0, + "rateApplicationMethod": "PER_TIER", + "applicabilityConditions": { + "additionalInfo": "string", + "additionalInfoUri": "string" + }, + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ], + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|lendingRateType|string|mandatory|The type of rate (fixed, variable, etc). See the next section for an overview of valid values and their meaning| +|rate|[RateString](#common-field-types)|mandatory|The rate to be applied| +|comparisonRate|[RateString](#common-field-types)|optional|A comparison rate equivalent for this rate| +|calculationFrequency|[ExternalRef](#common-field-types)|optional|The period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see applicationFrequency). Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)| +|applicationFrequency|[ExternalRef](#common-field-types)|optional|The period after which the calculated amount(s) (see calculationFrequency) are 'applied' (i.e. debited or credited) to the account. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)| +|interestPaymentDue|string|optional|When loan payments are due to be paid within each period. The investment benefit of earlier payments affect the rate that can be offered| +|repaymentType|string|optional|Options in place for repayments. If absent, the lending rate is applicable to all repayment types| +|loanPurpose|string|optional|The reason for taking out the loan. If absent, the lending rate is applicable to all loan purposes| +|tiers|[[BankingProductRateTierV3](#schemacdr-banking-apibankingproductratetierv3)]|optional|Rate tiers applicable for this rate| +|additionalValue|string|conditional|Generic field containing additional information relevant to the [lendingRateType](#tocSproductlendingratetypedoc) specified. Whether mandatory or not is dependent on the value of [lendingRateType](#tocSproductlendingratetypedoc)| +|additionalInfo|string|optional|Display text providing more information on the rate.| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this rate| + +#### Enumerated Values + +|Property|Value| +|---|---| +|lendingRateType|BUNDLE_DISCOUNT_FIXED| +|lendingRateType|BUNDLE_DISCOUNT_VARIABLE| +|lendingRateType|CASH_ADVANCE| +|lendingRateType|DISCOUNT| +|lendingRateType|FIXED| +|lendingRateType|FLOATING| +|lendingRateType|INTRODUCTORY| +|lendingRateType|MARKET_LINKED| +|lendingRateType|PENALTY| +|lendingRateType|PURCHASE| +|lendingRateType|VARIABLE| +|interestPaymentDue|IN_ADVANCE| +|interestPaymentDue|IN_ARREARS| +|repaymentType|INTEREST_ONLY| +|repaymentType|PRINCIPAL_AND_INTEREST| +|loanPurpose|INVESTMENT| +|loanPurpose|OWNER_OCCUPIED| + +

BankingProductRateTierV3

+ + + +```json +{ + "name": "string", + "unitOfMeasure": "DAY", + "minimumValue": 0, + "maximumValue": 0, + "rateApplicationMethod": "PER_TIER", + "applicabilityConditions": { + "additionalInfo": "string", + "additionalInfoUri": "string" + }, + "additionalInfo": "string", + "additionalInfoUri": "string" +} + +``` + +*Defines the criteria and conditions for which a rate applies* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|name|string|mandatory|A display name for the tier| +|unitOfMeasure|string|mandatory|The unit of measure that applies to the tierValueMinimum and tierValueMaximum values e.g. a **DOLLAR** amount. **PERCENT** (in the case of loan-to-value ratio or LVR). Tier term period representing a discrete number of **MONTH**'s or **DAY**'s (in the case of term deposit tiers)| +|minimumValue|[Number](#common-field-types)|mandatory|The number of tierUnitOfMeasure units that form the lower bound of the tier. The tier should be inclusive of this value| +|maximumValue|[Number](#common-field-types)|optional|The number of tierUnitOfMeasure units that form the upper bound of the tier or band. For a tier with a discrete value (as opposed to a range of values e.g. 1 month) this must be the same as tierValueMinimum. Where this is the same as the tierValueMinimum value of the next-higher tier the referenced tier should be exclusive of this value. For example a term deposit of 2 months falls into the upper tier of the following tiers: (1 – 2 months, 2 – 3 months). If absent the tier's range has no upper bound.| +|rateApplicationMethod|string|optional|The method used to calculate the amount to be applied using one or more tiers. A single rate may be applied to the entire balance or each applicable tier rate is applied to the portion of the balance that falls into that tier (referred to as 'bands' or 'steps')| +|applicabilityConditions|[BankingProductRateCondition](#schemacdr-banking-apibankingproductratecondition)|optional|Defines a condition for the applicability of a tiered rate| +|additionalInfo|string|optional|Display text providing more information on the rate tier.| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this rate tier| + +#### Enumerated Values + +|Property|Value| +|---|---| +|unitOfMeasure|DAY| +|unitOfMeasure|DOLLAR| +|unitOfMeasure|MONTH| +|unitOfMeasure|PERCENT| +|rateApplicationMethod|PER_TIER| +|rateApplicationMethod|WHOLE_BALANCE| + +

BankingProductRateCondition

+ + + +```json +{ + "additionalInfo": "string", + "additionalInfoUri": "string" +} + +``` + +*Defines a condition for the applicability of a tiered rate* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|additionalInfo|string|optional|Display text providing more information on the condition| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this condition| + + + + + + + +```json +{ + "self": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|self|[URIString](#common-field-types)|mandatory|Fully qualified link that generated the current response document| + +

Meta

+ + + +```json +{} + +``` + +### Properties + +*None* + + + +

MetaError

+ + + +```json +{ + "urn": "string" +} + +``` + +*Additional data for customised error codes* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|urn|string|conditional|The CDR error code URN which the application-specific error code extends. Mandatory if the error `code` is an application-specific error rather than a standardised error code.| + +

ResponseErrorListV2

+ + + +```json +{ + "errors": [ + { + "code": "string", + "title": "string", + "detail": "string", + "meta": { + "urn": "string" + } + } + ] +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|errors|[object]|mandatory|none| +|» code|string|mandatory|The code of the error encountered. Where the error is specific to the respondent, an application-specific error code, expressed as a string value. If the error is application-specific, the URN code that the specific error extends must be provided in the meta object. Otherwise, the value is the error code URN.| +|» title|string|mandatory|A short, human-readable summary of the problem that MUST NOT change from occurrence to occurrence of the problem represented by the error code.| +|» detail|string|mandatory|A human-readable explanation specific to this occurrence of the problem.| +|» meta|[MetaError](#schemacdr-banking-apimetaerror)|optional|Additional data for customised error codes| + +

BankingProductCategory

+ + + +```json +"BUSINESS_LOANS" + +``` + +*The category to which a product or account belongs. See [here](#product-categories) for more details* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|string|mandatory|The category to which a product or account belongs. See [here](#product-categories) for more details| + +#### Enumerated Values + +|Property|Value| +|---|---| +|*anonymous*|BUSINESS_LOANS| +|*anonymous*|CRED_AND_CHRG_CARDS| +|*anonymous*|LEASES| +|*anonymous*|MARGIN_LOANS| +|*anonymous*|OVERDRAFTS| +|*anonymous*|PERS_LOANS| +|*anonymous*|REGULATED_TRUST_ACCOUNTS| +|*anonymous*|RESIDENTIAL_MORTGAGES| +|*anonymous*|TERM_DEPOSITS| +|*anonymous*|TRADE_FINANCE| +|*anonymous*|TRANS_AND_SAVINGS_ACCOUNTS| +|*anonymous*|TRAVEL_CARDS| + + +## Product & Account Components + + +

Product Feature Types

+ +Description of the usage of the featureType field as it applies to products. + + +|Value|Description|Use of additionalValue Field| +|-----|-----------|----------------------------| +|ADDITIONAL_CARDS|Additional cards can be requested|The maximum number of additional cards. If no maximum then should be set to null| +|BALANCE_TRANSFERS|Balance transfers can be made to the account (eg. for credit cards)|NA| +|BILL_PAYMENT|The product can be attached to an automatic budgeting and bill payment service|Optional name of the service| +|BONUS_REWARDS|Bonus loyalty rewards points are available|Number of points available| +|CARD_ACCESS|A card is available for the product to access funds|Text describing list of card types that this product can be linked to| +|CASHBACK_OFFER | Subject to terms, conditions and eligibility criteria, the product has a cashback offer for opening an account or by spending at a certain retailer. | The amount of the cashback offer (in AUD) | +|COMPLEMENTARY_PRODUCT_DISCOUNTS|Indicates that complementary, discounted offerings (such as gift cards, or discounted travel) is available|Description of the complementary offering| +|DIGITAL_BANKING|Access is available to online banking features for the product|NA| +|DIGITAL_WALLET|A Digital wallet can be attached to the product|The name or brand of the wallet| +|DONATE_INTEREST|Indicates that interest generated from the product can be automatically donated to a charity or community group|NA| +|EXTRA_REPAYMENTS|Indicates that the product has the option to accept extra repayments without incurring additional charges (for example Buy Now, Pay Later (BNPL) or line of credit products may offer the facility to repay instalments on an adhoc basis).|NA| +|FRAUD_PROTECTION | The product includes fraud protection features. | NA | +|FREE_TXNS|A set number of free transactions available per month|The number of free transactions| +|FREE_TXNS_ALLOWANCE|A set amount of transaction fee value that is discounted per month|The amount of transaction fee discounted (in AUD)| +|GUARANTOR | Subject to terms and conditions, the customer may be able to nominate a guarantor during the origination process. | NA | +|INSURANCE|Insurance is provided as an additional feature of the product|Text description of the type of insurance (e.g. Travel Insurance)| +|INSTALMENT_PLAN | The product has the option to pay for eligible purchases over time with a set number of payments. | NA | +|INTEREST_FREE|Interest free period for purchases|Interest free period. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations)| +|INTEREST_FREE_TRANSFERS|Interest free period for balance transfers|Interest free period. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations)| +|LOYALTY_PROGRAM|A points based loyalty program is available|Name of the loyalty program| +|NOTIFICATIONS|Advanced notifications are available for the product|Description of the notification capability| +|NPP_ENABLED|An account of this product type can be used to receive funds as a result of a BSB/Number based NPP payment|NA| +|NPP_PAYID|An account of this product type can be used as the target of an NPP PayID|NA| +|OFFSET|An offset account can be connected to the product|NA| +|OTHER|Another feature that can not be included in any of the other categories. The additionalInfo field is mandatory for this type|NA| +|OVERDRAFT|An overdraft can be applied for|NA| +|REDRAW|Redraw of repaid principal above minimum required is available|NA| +|RELATIONSHIP_MANAGEMENT | Relationship management is available for eligible customers. | NA | +|UNLIMITED_TXNS|Unlimited free transactions available|NA| + + + + +

Product Constraint Types

+ +Description of the usage of the constraintType field as it applies to products. + +|Value|Description|Use of additionalValue Field| +|-----|-----------|----------------------------| +|MAX_BALANCE|A maximum balance is required for the product|The maximum balance in AmountString format| +|MAX_LIMIT|A maximum limit exists (such as a maximum loan balance denoting the borrowable amount or maximum allowable credit limit)|The maximum limit in AmountString format| +|MIN_BALANCE|A minimum balance is required for the product|The minimum balance in AmountString format| +|MIN_LIMIT|A minimum limit exists (such as a minimum loan balance denoting the borrowable amount or minimum credit limit)|The minimum limit in AmountString format| +|OPENING_BALANCE|An opening balance is required for the product|The minimum opening balance in AmountString format| + + + + +

Product Eligibility Types

+ +Description of the usage of the eligibilityType field as it applies to products. + +|Value|Description|Use of additionalValue Field| +|-----|-----------|----------------------------| +|BUSINESS|Only business may apply for the account|NA| +|EMPLOYMENT_STATUS|An eligibility constraint based on employment status applies|A description of the status required| +|MAX_AGE|Only customers younger than a maximum age may apply|The maximum age in years| +|MIN_AGE|Only customers older than a minimum age may apply|The minimum age in years| +|MIN_INCOME|The customer must have an income greater than a specified threshold to obtain the product|Minimum income in AmountString format| +|MIN_TURNOVER|Only a business with greater than a minimum turnover may apply|Minimum turnover in AmountString format| +|NATURAL_PERSON|The customer must be a natural person rather than another legal entity|NA| +|OTHER|Another eligibility criteria exists as described in the additionalInfo field (if this option is specified then the additionalInfo field is mandatory)|NA| +|PENSION_RECIPIENT|Only a recipient of a government pension may apply for the product|NA| +|RESIDENCY_STATUS|An eligibility constraint based on residency status applies|A description of the status required| +|STAFF|Only a staff member of the provider may apply|NA| +|STUDENT|Only students may apply for the product|NA| + + + + +

Product Fee Types

+ +Description of the usage of the feeType field as it applies to products. + +|Value|Description|Use of additionalValue Field| +|-----|-----------|----------------------------| +|DEPOSIT|A fee associated with making a deposit|NA| +|EVENT|A fee in relation to a particular event (e.g. ordering a new card, viewing a balance or stopping a cheque)|NA| +|EXIT|A fee for closing the product|NA| +|PAYMENT|A fee associated with making a payment|NA| +|PERIODIC|A periodic fee such as a monthly account servicing fee|The period of charge. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations)| +|PURCHASE|A fee associated with making a purchase at a merchant|NA| +|TRANSACTION|A fee associated with any transaction (incorporates WITHDRAWAL, DEPOSIT, PAYMENT and PURCHASE)|NA| +|UPFRONT|A fee paid at the beginning of the product lifecycle, such as an establishment fee, loyalty program fee or application fee|NA| +|VARIABLE|An at-cost fee that is relevant to a customer's circumstances where the amount or rate may not be known until negotiated with the customer|NA| +|WITHDRAWAL|A fee associated with making a withdrawal|NA| + + + + +

Product Discount Types

+ +Description of the usage of the discountType field as it applies to products. + +|Value|Description|Use of additionalValue Field| +|-----|-----------|----------------------------| +|BALANCE|Discount on a fee for maintaining a set balance. As the discount applies to a fee the period is the same as for the fee|The minimum balance in AmountString format| +|DEPOSITS|Discount for depositing a certain amount of money in a period. As the discount applies to a fee the period is the same as for the fee|The minimum deposit amount in AmountString format| +|ELIGIBILITY_ONLY|Discount applies based on customer eligibility (eligibility array must be populated)|N/A| +|FEE_CAP|The amount, balanceRate, transactionRate, accruedRate or feeRate fields of the discount represent the maximum amount charged in a time period|The time period for which the fee cap applies. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations)| +|PAYMENTS|Discount for outbound payments from the account under a certain amount of money in a period. As the discount applies to a fee the period is the same as for the fee|The payment threshold amount in AmountString format| + + + + +

Product Discount Eligibility Types

+ +Description of the usage of the discountEligibilityType field as it applies to products. + +|Value|Description|Use of additionalValue Field| +|-----|-----------|----------------------------| +|BUSINESS|A business or other non-person legal entity|NA| +|EMPLOYMENT_STATUS|An eligibility constraint based on employment status applies|A description of the status required| +|INTRODUCTORY|The discount is only available during an introductory period|The period of time for the introductory discount. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations)| +|MAX_AGE|Only customers younger than a maximum age receive the discount|The maximum age in years +|MIN_AGE|Only customers older than a minimum age receive the discount|The minimum age in years| +|MIN_INCOME|The customer must have an income greater than a specified threshold to obtain the discount|Minimum income in AmountString format| +|MIN_TURNOVER|Only a business with greater than a minimum turnover is eligible|Minimum turnover in AmountString format| +|NATURAL_PERSON|The customer must be a natural person rather than another legal entity|NA| +|OTHER|Another eligibility criteria exists as described in the additionalInfo field (if this option is specified then the additionalInfo field is mandatory)|NA| +|PENSION_RECIPIENT|Only a recipient of a government pension may receive the discount|Optional. Should contain a description of which pensions qualify| +|RESIDENCY_STATUS|An eligibility constraint based on residency status applies|A description of the status required| +|STAFF|Only a staff member of the provider may receive the discount|NA| +|STUDENT|Only students may receive the discount|Optional. Should contain a description of who qualifies as a student, e.g. do apprentices qualify?| + + + + + +

Product Deposit Rate Types

+ +Description of the usage of the depositRateType field as it applies to products. + + + + +A deposit product is expected to present a single Base rate corresponding to relevant selection criteria including the rate `tiers` and `additionalValue`, where applicable. + +Value | Description | Use of additionalValue Field +-- | -- | -- +FIXED | Fixed rate for a period of time | The period of time fixed. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) +FLOATING | A floating rate is relatively fixed but still adjusts under specific circumstances | Details of the float parameters +MARKET_LINKED | A rate that is linked to a specific market, commodity or asset class | Details of the market linkage +VARIABLE | A variable base rate for the product | NA + + + + + +A product may have zero, one, or multiple adjustment rates that are taken to apply to a Base rate. + +Value | Description | Use of additionalValue Field +-- | -- | -- +BONUS | A bonus rate available by meeting a specific criteria | A description of the criteria to obtain the bonus +BUNDLE_BONUS | A bonus rate obtained by originating a bundle instead of a standalone product | The name of the bundle +INTRODUCTORY | An introductory bonus that will expire after a set period | The period of time for the introductory rate. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) + + + + +

Product Lending Rate Types

+ +Description of the usage of the lendingRateType field as it applies to products. + + + + + +A lending product is expected to present a single Base rate corresponding to relevant selection criteria including the rate `tiers` and `additionalValue`, where applicable. + +Card products may have two or more base rates, including `CASH_ADVANCE` and `PURCHASE` as they may apply to different transaction types within an account. The `PURCHASE` lendingRateType is considered the rate commonly applicable to a card. + +Value | Description | Use of additionalValue Field +-- | -- | -- +CASH_ADVANCE | Specific rate applied to cash advances from the account. This is expected to apply to products in the `CRED_AND_CHRG_CARDS` category only | NA +FIXED | Fixed rate for a period of time | The period of time fixed. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) +FLOATING | A floating rate is relatively fixed but still adjusts under specific circumstances | Details of the float parameters +MARKET_LINKED | A rate that is linked to a specific market, commodity or asset class | Details of the market linkage +PURCHASE | Specific rate applied to purchases from the account. This is expected to apply to products in the `CRED_AND_CHRG_CARDS` category only | NA +VARIABLE | A variable base rate for the product | NA + + + + + + +A product may have zero, one, or multiple adjustment rates that are taken to apply to a Base rate. + +Value | Description | Use of additionalValue Field +-- | -- | -- +BUNDLE_DISCOUNT_FIXED | A discount rate off the fixed rate obtained by originating a bundle instead of a standalone product | The name of the bundle +BUNDLE_DISCOUNT_VARIABLE | A discount rate off the variable rate obtained by originating a bundle instead of a standalone product | The name of the bundle +DISCOUNT | A specific discount rate that may be applied. A discount rate reduces the interest payable | Description of the discount rate that is applicable +INTRODUCTORY | An introductory discount that will expire after a set period | The period of time for the introductory rate. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) +PENALTY | A specific penalty rate that may be applied. A penalty rate increases the interest payable | Description of the penalty rate that is applicable + + + +

Banking Term Deposit Account Types

+ +Description of the usage of the maturityInstructions field as it applies to accounts. + +|Value|Description|Use of additionalValue Field| +|-----|-----------|----------------------------| +|HOLD_ON_MATURITY|Funds are held in a facility or similar mechanism managed by the data holder for a period of time until the customer provides instructions or the maximum period of the hold has elapsed. Funds may be renewed or withdrawn upon instructions by the customer|NA| diff --git a/slate/source/includes/obsolete/get-products-v3.html.md b/slate/source/includes/obsolete/get-products-v3.html.md new file mode 100644 index 00000000..d7538d9c --- /dev/null +++ b/slate/source/includes/obsolete/get-products-v3.html.md @@ -0,0 +1,984 @@ +--- +title: Get Products v3 + +#language_tabs: # must be one of https://git.io/vQNgJ +# - shell +# - javascript + +toc_footers: + - Consumer Data Standards + +search: false +--- + +# Get Products V3 +This page documents the obsolete version 3 of the Get Products endpoint. + +This version is to be ceased to be called by data recipients by **Date TBC** and can be decommissioned by data holders as of that date. + + + +## Get Products + + + +> Code samples + +```http +GET https://data.holder.com.au/cds-au/v1/banking/products HTTP/1.1 +Host: data.holder.com.au +Accept: application/json +x-v: string +x-min-v: string + +``` + +```javascript--nodejs +const fetch = require('node-fetch'); + +const headers = { + 'Accept':'application/json', + 'x-v':'string', + 'x-min-v':'string' + +}; + +fetch('https://data.holder.com.au/cds-au/v1/banking/products', +{ + method: 'GET', + + headers: headers +}) +.then(function(res) { + return res.json(); +}).then(function(body) { + console.log(body); +}); + +``` + +`GET /banking/products` + +Obtain a list of products that are currently openly offered to the market + +Note that the results returned by this end point are expected to be ordered in descending order according to ``lastUpdated``. + +### Conventions +In the product reference payloads there are a number of recurring conventions that are explained here, in one place. + +#### Arrays Of Features + +In the product detail payload there are a number of arrays articulating generic features, constraints, prices, etc. The intent of these arrays is as follows: + +- Each element in an array has the same structure so that clients can reliably interpret the payloads +- Each element as a type element that is an enumeration of the specific aspect of a product being described, such as types of fees. +- Each element has a field name [additionalValue](#productfeaturetypedoc). This is a generic field with contents that will vary based on the type of object being described. The contents of this field for the ADDITIONAL_CARDS feature is the number of cards allowed while the contents of this field for the MAX_LIMIT constraint would be the maximum credit limit allowed for the product. +- An element in these arrays of the same type may appear more than once. For instance, a product may offer two separate loyalty programs that the customer can select from. A fixed term mortgage may have different rates for different term lengths. +- An element in these arrays may contain an additionalInfo and additionalInfoUri field. The additionalInfo field is used to provide displayable text clarifying the purpose of the element in some way when the product is presented to a customer. The additionalInfoUri provides a link to externally hosted information specifically relevant to that feature of the product. +- Depending on the type of data being represented there may be additional specific fields. + +#### URIs To More Information + +As the complexities and nuances of a financial product can not easily be fully expressed in a data structure without a high degree of complexity it is necessary to provide additional reference information that a potential customer can access so that they are fully informed of the features and implications of the product. The payloads for product reference therefore contain numerous fields that are provided to allow the product holder to describe the product more fully using a web page hosted on their online channels. + +These URIs do not need to all link to different pages. If desired, they can all link to a single hosted page and use difference HTML anchors to focus on a specific topic such as eligibility or fees. + +#### Linkage To Accounts +From the moment that a customer applies for a product and an account is created the account and the product that spawned it will diverge. Rates and features of the product may change and a discount may be negotiated for the account. + +For this reason, while productCategory is a common field between accounts and products, there is no specific ID that can be used to link an account to a product within the regime. + +Similarly, many of the fields and objects in the product payload will appear in the account detail payload but the structures and semantics are not identical as one refers to a product that can potentially be originated and one refers to an account that actually has been instantiated and created along with the associated decisions inherent in that process. + +#### Dates +It is expected that data consumers needing this data will call relatively frequently to ensure the data they have is representative of the current offering from a bank. To minimise the volume and frequency of these calls the ability to set a lastUpdated field with the date and time of the last update to this product is included. A call for a list of products can then be filtered to only return products that have been updated since the last time that data was obtained using the updated-since query parameter. + +In addition, the concept of effective date and time has also been included. This allows for a product to be marked for obsolescence, or introduction, from a certain time without the need for an update to show that a product has been changed. The inclusion of these dates also removes the need to represent deleted products in the payload. Products that are no long offered can be marked not effective for a few weeks before they are then removed from the product set as an option entirely. + +Obsolete versions: [v1](../../includes/obsolete/get-products-v1.html), [v2](../../includes/obsolete/get-products-v2.html) + +###Endpoint Version +| | | +|---|--| +|Version|**3** + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|effective|query|string|optional|Allows for the filtering of products based on whether the current time is within the period of time defined as effective by the effectiveFrom and effectiveTo fields. Valid values are ‘CURRENT’, ‘FUTURE’ and ‘ALL’. If absent defaults to 'CURRENT'| +|updated-since|query|[DateTimeString](#common-field-types)|optional|Only include products that have been updated after the specified date and time. If absent defaults to include all products| +|brand|query|string|optional|Filter results based on a specific brand| +|product-category|query|string|optional|Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.| +|page|query|[PositiveInteger](#common-field-types)|optional|Page of results to request (standard pagination)| +|page-size|query|[PositiveInteger](#common-field-types)|optional|Page size to request. Default is 25 (standard pagination)| +|x-v|header|string|mandatory|Version of the API end point requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers)| +|x-min-v|header|string|optional|Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.| + +#### Enumerated Values + +|Parameter|Value| +|---|---| +|effective|ALL| +|effective|CURRENT| +|effective|FUTURE| +|product-category|BUSINESS_LOANS| +|product-category|CRED_AND_CHRG_CARDS| +|product-category|LEASES| +|product-category|MARGIN_LOANS| +|product-category|OVERDRAFTS| +|product-category|PERS_LOANS| +|product-category|REGULATED_TRUST_ACCOUNTS| +|product-category|RESIDENTIAL_MORTGAGES| +|product-category|TERM_DEPOSITS| +|product-category|TRADE_FINANCE| +|product-category|TRANS_AND_SAVINGS_ACCOUNTS| +|product-category|TRAVEL_CARDS| + +> Example responses + +> 200 Response + +```json +{ + "data": { + "products": [ + { + "productId": "string", + "effectiveFrom": "string", + "effectiveTo": "string", + "lastUpdated": "string", + "productCategory": "BUSINESS_LOANS", + "name": "string", + "description": "string", + "brand": "string", + "brandName": "string", + "applicationUri": "string", + "isTailored": true, + "additionalInformation": { + "overviewUri": "string", + "termsUri": "string", + "eligibilityUri": "string", + "feesAndPricingUri": "string", + "bundleUri": "string", + "additionalOverviewUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalTermsUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalEligibilityUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalFeesAndPricingUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalBundleUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ] + }, + "cardArt": [ + { + "title": "string", + "imageUri": "string" + } + ] + } + ] + }, + "links": { + "self": "string", + "first": "string", + "prev": "string", + "next": "string", + "last": "string" + }, + "meta": { + "totalRecords": 0, + "totalPages": 0 + } +} +``` + +

Responses

+ +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success|[ResponseBankingProductListV2](#schemacdr-banking-apiresponsebankingproductlistv2)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| +|406|[Not Acceptable](https://tools.ietf.org/html/rfc7231#section-6.5.6)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| +|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| + +### Response Headers + +|Status|Header|Type|Format|Description| +|---|---|---|---|---| +|200|x-v|string||The [version](#response-headers) of the API end point that the data holder has responded with.| + + + + + + +

Schemas

+ + + + +

ResponseBankingProductListV2

+ + + +```json +{ + "data": { + "products": [ + { + "productId": "string", + "effectiveFrom": "string", + "effectiveTo": "string", + "lastUpdated": "string", + "productCategory": "BUSINESS_LOANS", + "name": "string", + "description": "string", + "brand": "string", + "brandName": "string", + "applicationUri": "string", + "isTailored": true, + "additionalInformation": { + "overviewUri": "string", + "termsUri": "string", + "eligibilityUri": "string", + "feesAndPricingUri": "string", + "bundleUri": "string", + "additionalOverviewUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalTermsUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalEligibilityUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalFeesAndPricingUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalBundleUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ] + }, + "cardArt": [ + { + "title": "string", + "imageUri": "string" + } + ] + } + ] + }, + "links": { + "self": "string", + "first": "string", + "prev": "string", + "next": "string", + "last": "string" + }, + "meta": { + "totalRecords": 0, + "totalPages": 0 + } +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|data|object|mandatory|none| +|» products|[[BankingProductV4](#schemacdr-banking-apibankingproductv4)]|mandatory|The list of products returned. If the filter results in an empty set then this array may have no records| +|links|[LinksPaginated](#schemacdr-banking-apilinkspaginated)|mandatory|none| +|meta|[MetaPaginated](#schemacdr-banking-apimetapaginated)|mandatory|none| + +

BankingProductV4

+ + + +```json +{ + "productId": "string", + "effectiveFrom": "string", + "effectiveTo": "string", + "lastUpdated": "string", + "productCategory": "BUSINESS_LOANS", + "name": "string", + "description": "string", + "brand": "string", + "brandName": "string", + "applicationUri": "string", + "isTailored": true, + "additionalInformation": { + "overviewUri": "string", + "termsUri": "string", + "eligibilityUri": "string", + "feesAndPricingUri": "string", + "bundleUri": "string", + "additionalOverviewUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalTermsUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalEligibilityUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalFeesAndPricingUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalBundleUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ] + }, + "cardArt": [ + { + "title": "string", + "imageUri": "string" + } + ] +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|productId|[ASCIIString](#common-field-types)|mandatory|A data holder specific unique identifier for this product. This identifier must be unique to a product but does not otherwise need to adhere to ID permanence guidelines.| +|effectiveFrom|[DateTimeString](#common-field-types)|optional|The date and time from which this product is effective (ie. is available for origination). Used to enable the articulation of products to the regime before they are available for customers to originate| +|effectiveTo|[DateTimeString](#common-field-types)|optional|The date and time at which this product will be retired and will no longer be offered. Used to enable the managed deprecation of products| +|lastUpdated|[DateTimeString](#common-field-types)|mandatory|The last date and time that the information for this product was changed (or the creation date for the product if it has never been altered)| +|productCategory|[BankingProductCategory](#schemacdr-banking-apibankingproductcategory)|mandatory|The category to which a product or account belongs. See [here](#product-categories) for more details| +|name|string|mandatory|The display name of the product| +|description|string|mandatory|A description of the product| +|brand|string|mandatory|A label of the brand for the product. Able to be used for filtering. For data holders with single brands this value is still required| +|brandName|string|optional|An optional display name of the brand| +|applicationUri|[URIString](#common-field-types)|optional|A link to an application web page where this product can be applied for.| +|isTailored|[Boolean](#common-field-types)|mandatory|Indicates whether the product is specifically tailored to a circumstance. In this case fees and prices are significantly negotiated depending on context. While all products are open to a degree of tailoring this flag indicates that tailoring is expected and thus that the provision of specific fees and rates is not applicable| +|additionalInformation|[BankingProductAdditionalInformationV2](#schemacdr-banking-apibankingproductadditionalinformationv2)|optional|Object that contains links to additional information on specific topics| +|cardArt|[object]|optional|An array of card art images| +|» title|string|optional|Display label for the specific image| +|» imageUri|[URIString](#common-field-types)|mandatory|URI reference to a PNG, JPG or GIF image with proportions defined by ISO 7810 ID-1 and width no greater than 512 pixels. The URI reference may be a link or url-encoded data URI according to **[[RFC2397]](#nref-RFC2397)**| + +

BankingProductAdditionalInformationV2

+ + + +```json +{ + "overviewUri": "string", + "termsUri": "string", + "eligibilityUri": "string", + "feesAndPricingUri": "string", + "bundleUri": "string", + "additionalOverviewUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalTermsUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalEligibilityUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalFeesAndPricingUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ], + "additionalBundleUris": [ + { + "description": "string", + "additionalInfoUri": "string" + } + ] +} + +``` + +*Object that contains links to additional information on specific topics* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|overviewUri|[URIString](#common-field-types)|conditional|General overview of the product. Mandatory if `additionalOverviewUris` includes one or more supporting documents.| +|termsUri|[URIString](#common-field-types)|conditional|Terms and conditions for the product. Mandatory if `additionalTermsUris` includes one or more supporting documents.| +|eligibilityUri|[URIString](#common-field-types)|conditional|Eligibility rules and criteria for the product. Mandatory if `additionalEligibilityUris` includes one or more supporting documents.| +|feesAndPricingUri|[URIString](#common-field-types)|conditional|Description of fees, pricing, discounts, exemptions and bonuses for the product. Mandatory if `additionalFeesAndPricingUris` includes one or more supporting documents.| +|bundleUri|[URIString](#common-field-types)|conditional|Description of a bundle that this product can be part of. Mandatory if `additionalBundleUris` includes one or more supporting documents.| +|additionalOverviewUris|[[BankingProductAdditionalInformationV2_additionalInformationUris](#schemacdr-banking-apibankingproductadditionalinformationv2_additionalinformationuris)]|optional|An array of additional general overviews for the product or features of the product, if applicable. To be treated as secondary documents to the `overviewUri`. Only to be used if there is a primary `overviewUri`.| +|additionalTermsUris|[[BankingProductAdditionalInformationV2_additionalInformationUris](#schemacdr-banking-apibankingproductadditionalinformationv2_additionalinformationuris)]|optional|An array of additional terms and conditions for the product, if applicable. To be treated as secondary documents to the `termsUri`. Only to be used if there is a primary `termsUri`.| +|additionalEligibilityUris|[[BankingProductAdditionalInformationV2_additionalInformationUris](#schemacdr-banking-apibankingproductadditionalinformationv2_additionalinformationuris)]|optional|An array of additional eligibility rules and criteria for the product, if applicable. To be treated as secondary documents to the `eligibilityUri`. Only to be used if there is a primary `eligibilityUri`.| +|additionalFeesAndPricingUris|[[BankingProductAdditionalInformationV2_additionalInformationUris](#schemacdr-banking-apibankingproductadditionalinformationv2_additionalinformationuris)]|optional|An array of additional fees, pricing, discounts, exemptions and bonuses for the product, if applicable. To be treated as secondary documents to the `feesAndPricingUri`. Only to be used if there is a primary `feesAndPricingUri`.| +|additionalBundleUris|[[BankingProductAdditionalInformationV2_additionalInformationUris](#schemacdr-banking-apibankingproductadditionalinformationv2_additionalinformationuris)]|optional|An array of additional bundles for the product, if applicable. To be treated as secondary documents to the `bundleUri`. Only to be used if there is a primary `bundleUri`.| + +

BankingProductAdditionalInformationV2_additionalInformationUris

+ + + +```json +{ + "description": "string", + "additionalInfoUri": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|description|string|optional|Display text providing more information about the document URI| +|additionalInfoUri|[URIString](#common-field-types)|mandatory|The URI describing the additional information| + + + +

BankingProductBundle

+ + + +```json +{ + "name": "string", + "description": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "productIds": [ + "string" + ] +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|name|string|mandatory|Name of the bundle| +|description|string|mandatory|Description of the bundle| +|additionalInfo|string|optional|Display text providing more information on the bundle| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on the bundle criteria and benefits| +|productIds|[string]|optional|Array of product IDs for products included in the bundle that are available via the product end points. Note that this array is not intended to represent a comprehensive model of the products included in the bundle and some products available for the bundle may not be available via the product reference end points| + +

BankingProductFeatureV2

+ + + +```json +{ + "featureType": "ADDITIONAL_CARDS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|featureType|string|mandatory|The type of feature described| +|additionalValue|string|conditional|Generic field containing additional information relevant to the [featureType](#tocSproductfeaturetypedoc) specified. Whether mandatory or not is dependent on the value of the [featureType.](#tocSproductfeaturetypedoc)| +|additionalInfo|string|conditional|Display text providing more information on the feature. Mandatory if the [feature type](#tocSproductfeaturetypedoc) is set to OTHER| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this feature| + +#### Enumerated Values + +|Property|Value| +|---|---| +|featureType|ADDITIONAL_CARDS| +|featureType|BALANCE_TRANSFERS| +|featureType|BILL_PAYMENT| +|featureType|BONUS_REWARDS| +|featureType|CARD_ACCESS| +|featureType|CASHBACK_OFFER| +|featureType|COMPLEMENTARY_PRODUCT_DISCOUNTS| +|featureType|DIGITAL_BANKING| +|featureType|DIGITAL_WALLET| +|featureType|DONATE_INTEREST| +|featureType|EXTRA_REPAYMENTS| +|featureType|FRAUD_PROTECTION| +|featureType|FREE_TXNS| +|featureType|FREE_TXNS_ALLOWANCE| +|featureType|GUARANTOR| +|featureType|INSURANCE| +|featureType|INSTALMENT_PLAN| +|featureType|INTEREST_FREE| +|featureType|INTEREST_FREE_TRANSFERS| +|featureType|LOYALTY_PROGRAM| +|featureType|NOTIFICATIONS| +|featureType|NPP_ENABLED| +|featureType|NPP_PAYID| +|featureType|OFFSET| +|featureType|OTHER| +|featureType|OVERDRAFT| +|featureType|REDRAW| +|featureType|RELATIONSHIP_MANAGEMENT| +|featureType|UNLIMITED_TXNS| + +

BankingProductConstraint

+ + + +```json +{ + "constraintType": "MAX_BALANCE", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|constraintType|string|mandatory|The type of constraint described. See the next section for an overview of valid values and their meaning| +|additionalValue|string|conditional|Generic field containing additional information relevant to the [constraintType](#tocSproductconstrainttypedoc) specified. Whether mandatory or not is dependent on the value of [constraintType](#tocSproductconstrainttypedoc)| +|additionalInfo|string|optional|Display text providing more information the constraint| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on the constraint| + +#### Enumerated Values + +|Property|Value| +|---|---| +|constraintType|MAX_BALANCE| +|constraintType|MAX_LIMIT| +|constraintType|MIN_BALANCE| +|constraintType|MIN_LIMIT| +|constraintType|OPENING_BALANCE| + +

BankingProductEligibility

+ + + +```json +{ + "eligibilityType": "BUSINESS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|eligibilityType|string|mandatory|The type of eligibility criteria described. See the next section for an overview of valid values and their meaning| +|additionalValue|string|conditional|Generic field containing additional information relevant to the [eligibilityType](#tocSproducteligibilitytypedoc) specified. Whether mandatory or not is dependent on the value of [eligibilityType](#tocSproducteligibilitytypedoc)| +|additionalInfo|string|conditional|Display text providing more information on the [eligibility](#tocSproducteligibilitytypedoc) criteria. Mandatory if the field is set to OTHER| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this eligibility criteria| + +#### Enumerated Values + +|Property|Value| +|---|---| +|eligibilityType|BUSINESS| +|eligibilityType|EMPLOYMENT_STATUS| +|eligibilityType|MAX_AGE| +|eligibilityType|MIN_AGE| +|eligibilityType|MIN_INCOME| +|eligibilityType|MIN_TURNOVER| +|eligibilityType|NATURAL_PERSON| +|eligibilityType|OTHER| +|eligibilityType|PENSION_RECIPIENT| +|eligibilityType|RESIDENCY_STATUS| +|eligibilityType|STAFF| +|eligibilityType|STUDENT| + +

BankingProductFee

+ + + +```json +{ + "name": "string", + "feeType": "DEPOSIT", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "accrualFrequency": "string", + "currency": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "discounts": [ + { + "description": "string", + "discountType": "BALANCE", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "feeRate": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "eligibility": [ + { + "discountEligibilityType": "BUSINESS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ] + } + ] +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|name|string|mandatory|Name of the fee| +|feeType|string|mandatory|The type of fee| +|amount|[AmountString](#common-field-types)|conditional|The amount charged for the fee. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* "VARIABLE" is supplied| +|balanceRate|[RateString](#common-field-types)|conditional|A fee rate calculated based on a proportion of the balance. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* "VARIABLE" is supplied.| +|transactionRate|[RateString](#common-field-types)|conditional|A fee rate calculated based on a proportion of a transaction. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* "VARIABLE" is supplied| +|accruedRate|[RateString](#common-field-types)|conditional|A fee rate calculated based on a proportion of the calculated interest accrued on the account. One of amount, balanceRate, transactionRate and accruedRate is mandatory unless the *feeType* "VARIABLE" is supplied| +|accrualFrequency|[ExternalRef](#common-field-types)|optional|The indicative frequency with which the fee is calculated on the account. Only applies if balanceRate or accruedRate is also present. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)| +|currency|[CurrencyString](#common-field-types)|optional|The currency the fee will be charged in. Assumes AUD if absent| +|additionalValue|string|conditional|Generic field containing additional information relevant to the [feeType](#tocSproductfeetypedoc) specified. Whether mandatory or not is dependent on the value of [feeType](#tocSproductfeetypedoc)| +|additionalInfo|string|optional|Display text providing more information on the fee| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this fee| +|discounts|[[BankingProductDiscount](#schemacdr-banking-apibankingproductdiscount)]|optional|An optional list of discounts to this fee that may be available| + +#### Enumerated Values + +|Property|Value| +|---|---| +|feeType|DEPOSIT| +|feeType|EVENT| +|feeType|EXIT| +|feeType|PAYMENT| +|feeType|PERIODIC| +|feeType|PURCHASE| +|feeType|TRANSACTION| +|feeType|UPFRONT| +|feeType|VARIABLE| +|feeType|WITHDRAWAL| + +

BankingProductDiscount

+ + + +```json +{ + "description": "string", + "discountType": "BALANCE", + "amount": "string", + "balanceRate": "string", + "transactionRate": "string", + "accruedRate": "string", + "feeRate": "string", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string", + "eligibility": [ + { + "discountEligibilityType": "BUSINESS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" + } + ] +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|description|string|mandatory|Description of the discount| +|discountType|string|mandatory|The type of discount. See the next section for an overview of valid values and their meaning| +|amount|[AmountString](#common-field-types)|conditional|Dollar value of the discount. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory.| +|balanceRate|[RateString](#common-field-types)|conditional|A discount rate calculated based on a proportion of the balance. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee| +|transactionRate|[RateString](#common-field-types)|conditional|A discount rate calculated based on a proportion of a transaction. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory| +|accruedRate|[RateString](#common-field-types)|conditional|A discount rate calculated based on a proportion of the calculated interest accrued on the account. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee| +|feeRate|[RateString](#common-field-types)|conditional|A discount rate calculated based on a proportion of the fee to which this discount is attached. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of amount, balanceRate, transactionRate, accruedRate and feeRate is mandatory. Unless noted in additionalInfo, assumes the application and calculation frequency are the same as the corresponding fee| +|additionalValue|string|conditional|Generic field containing additional information relevant to the [discountType](#tocSproductdiscounttypedoc) specified. Whether mandatory or not is dependent on the value of [discountType](#tocSproductdiscounttypedoc)| +|additionalInfo|string|optional|Display text providing more information on the discount| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this discount| +|eligibility|[[BankingProductDiscountEligibility](#schemacdr-banking-apibankingproductdiscounteligibility)]|conditional|Eligibility constraints that apply to this discount. Mandatory if ``discountType`` is ``ELIGIBILITY_ONLY``.| + +#### Enumerated Values + +|Property|Value| +|---|---| +|discountType|BALANCE| +|discountType|DEPOSITS| +|discountType|ELIGIBILITY_ONLY| +|discountType|FEE_CAP| +|discountType|PAYMENTS| + +

BankingProductDiscountEligibility

+ + + +```json +{ + "discountEligibilityType": "BUSINESS", + "additionalValue": "string", + "additionalInfo": "string", + "additionalInfoUri": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|discountEligibilityType|string|mandatory|The type of the specific eligibility constraint for a discount| +|additionalValue|string|conditional|Generic field containing additional information relevant to the [discountEligibilityType](#tocSproductdiscounteligibilitydoc) specified. Whether mandatory or not is dependent on the value of [discountEligibilityType](#tocSproductdiscounteligibilitydoc)| +|additionalInfo|string|conditional|Display text providing more information on this eligibility constraint. Whether mandatory or not is dependent on the value of [discountEligibilityType](#tocSproductdiscounteligibilitydoc)| +|additionalInfoUri|[URIString](#common-field-types)|optional|Link to a web page with more information on this eligibility constraint| + +#### Enumerated Values + +|Property|Value| +|---|---| +|discountEligibilityType|BUSINESS| +|discountEligibilityType|EMPLOYMENT_STATUS| +|discountEligibilityType|INTRODUCTORY| +|discountEligibilityType|MAX_AGE| +|discountEligibilityType|MIN_AGE| +|discountEligibilityType|MIN_INCOME| +|discountEligibilityType|MIN_TURNOVER| +|discountEligibilityType|NATURAL_PERSON| +|discountEligibilityType|OTHER| +|discountEligibilityType|PENSION_RECIPIENT| +|discountEligibilityType|RESIDENCY_STATUS| +|discountEligibilityType|STAFF| +|discountEligibilityType|STUDENT| + + + +

LinksPaginated

+ + + +```json +{ + "self": "string", + "first": "string", + "prev": "string", + "next": "string", + "last": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|self|[URIString](#common-field-types)|mandatory|Fully qualified link that generated the current response document| +|first|[URIString](#common-field-types)|conditional|URI to the first page of this set. Mandatory if this response is not the first page| +|prev|[URIString](#common-field-types)|conditional|URI to the previous page of this set. Mandatory if this response is not the first page| +|next|[URIString](#common-field-types)|conditional|URI to the next page of this set. Mandatory if this response is not the last page| +|last|[URIString](#common-field-types)|conditional|URI to the last page of this set. Mandatory if this response is not the last page| + +

MetaPaginated

+ + + +```json +{ + "totalRecords": 0, + "totalPages": 0 +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|totalRecords|[NaturalNumber](#common-field-types)|mandatory|The total number of records in the full set. See [pagination](#pagination).| +|totalPages|[NaturalNumber](#common-field-types)|mandatory|The total number of pages in the full set. See [pagination](#pagination).| + +

MetaPaginatedTransaction

+ + + +```json +{ + "totalRecords": 0, + "totalPages": 0, + "isQueryParamUnsupported": false +} + +``` + +### Properties + +*allOf* + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|[MetaPaginated](#schemacdr-banking-apimetapaginated)|mandatory|none| + +*and* + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|object|mandatory|none| +|» isQueryParamUnsupported|[Boolean](#common-field-types)|optional|**true** if *"text"* query parameter is not supported| + +

MetaError

+ + + +```json +{ + "urn": "string" +} + +``` + +*Additional data for customised error codes* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|urn|string|conditional|The CDR error code URN which the application-specific error code extends. Mandatory if the error `code` is an application-specific error rather than a standardised error code.| + +

ResponseErrorListV2

+ + + +```json +{ + "errors": [ + { + "code": "string", + "title": "string", + "detail": "string", + "meta": { + "urn": "string" + } + } + ] +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|errors|[object]|mandatory|none| +|» code|string|mandatory|The code of the error encountered. Where the error is specific to the respondent, an application-specific error code, expressed as a string value. If the error is application-specific, the URN code that the specific error extends must be provided in the meta object. Otherwise, the value is the error code URN.| +|» title|string|mandatory|A short, human-readable summary of the problem that MUST NOT change from occurrence to occurrence of the problem represented by the error code.| +|» detail|string|mandatory|A human-readable explanation specific to this occurrence of the problem.| +|» meta|[MetaError](#schemacdr-banking-apimetaerror)|optional|Additional data for customised error codes| + +

BankingProductCategory

+ + + +```json +"BUSINESS_LOANS" + +``` + +*The category to which a product or account belongs. See [here](#product-categories) for more details* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|string|mandatory|The category to which a product or account belongs. See [here](#product-categories) for more details| + +#### Enumerated Values + +|Property|Value| +|---|---| +|*anonymous*|BUSINESS_LOANS| +|*anonymous*|CRED_AND_CHRG_CARDS| +|*anonymous*|LEASES| +|*anonymous*|MARGIN_LOANS| +|*anonymous*|OVERDRAFTS| +|*anonymous*|PERS_LOANS| +|*anonymous*|REGULATED_TRUST_ACCOUNTS| +|*anonymous*|RESIDENTIAL_MORTGAGES| +|*anonymous*|TERM_DEPOSITS| +|*anonymous*|TRADE_FINANCE| +|*anonymous*|TRANS_AND_SAVINGS_ACCOUNTS| +|*anonymous*|TRAVEL_CARDS| \ No newline at end of file diff --git a/slate/source/includes/obsolete/get-scheduled-payments-bulk-v2.html.md b/slate/source/includes/obsolete/get-scheduled-payments-bulk-v2.html.md new file mode 100644 index 00000000..feb5e31f --- /dev/null +++ b/slate/source/includes/obsolete/get-scheduled-payments-bulk-v2.html.md @@ -0,0 +1,1265 @@ +--- +title: Get Scheduled Payments Bulk v2 + +#language_tabs: # must be one of https://git.io/vQNgJ +# - shell +# - javascript + +toc_footers: + - Consumer Data Standards + +search: false +--- + +# Get Scheduled Payments Bulk V2 +This page documents the obsolete version 2 of the Get Scheduled Payments Bulk endpoint. + +This version is to be ceased to be called by data recipients by **Date TBC** and can be decommissioned by data holders as of that date. + + + +## Get Scheduled Payments Bulk + + + +> Code samples + +```http +GET https://data.holder.com.au/cds-au/v1/banking/payments/scheduled HTTP/1.1 +Host: data.holder.com.au +Accept: application/json +x-v: string +x-min-v: string +x-fapi-interaction-id: string +x-fapi-auth-date: string +x-fapi-customer-ip-address: string +x-cds-client-headers: string + +``` + +```javascript--nodejs +const fetch = require('node-fetch'); + +const headers = { + 'Accept':'application/json', + 'x-v':'string', + 'x-min-v':'string', + 'x-fapi-interaction-id':'string', + 'x-fapi-auth-date':'string', + 'x-fapi-customer-ip-address':'string', + 'x-cds-client-headers':'string' + +}; + +fetch('https://data.holder.com.au/cds-au/v1/banking/payments/scheduled', +{ + method: 'GET', + + headers: headers +}) +.then(function(res) { + return res.json(); +}).then(function(body) { + console.log(body); +}); + +``` + +`GET /banking/payments/scheduled` + +Obtain scheduled payments for multiple, filtered accounts that are the source of funds for the payments + +Obsolete versions: [v1](../../includes/obsolete/get-scheduled-payments-bulk-v1.html) + +###Endpoint Version +| | | +|---|--| +|Version|**2** + +

Parameters

+ +|Name|In|Type|Required|Description| +|---|---|---|---|---| +|product-category|query|string|optional|Used to filter results on the productCategory field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.| +|open-status|query|string|optional|Used to filter results according to open/closed status. Values can be OPEN, CLOSED or ALL. If absent then ALL is assumed| +|is-owned|query|[Boolean](#common-field-types)|optional|Filters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts| +|page|query|[PositiveInteger](#common-field-types)|optional|Page of results to request (standard pagination)| +|page-size|query|[PositiveInteger](#common-field-types)|optional|Page size to request. Default is 25 (standard pagination)| +|x-v|header|string|mandatory|Version of the API end point requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers)| +|x-min-v|header|string|optional|Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.| +|x-fapi-interaction-id|header|string|optional|An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| +|x-fapi-auth-date|header|string|conditional|The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.| +|x-fapi-customer-ip-address|header|string|optional|The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.| +|x-cds-client-headers|header|[Base64](#common-field-types)|conditional|The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.| + +#### Enumerated Values + +|Parameter|Value| +|---|---| +|product-category|BUSINESS_LOANS| +|product-category|CRED_AND_CHRG_CARDS| +|product-category|LEASES| +|product-category|MARGIN_LOANS| +|product-category|OVERDRAFTS| +|product-category|PERS_LOANS| +|product-category|REGULATED_TRUST_ACCOUNTS| +|product-category|RESIDENTIAL_MORTGAGES| +|product-category|TERM_DEPOSITS| +|product-category|TRADE_FINANCE| +|product-category|TRANS_AND_SAVINGS_ACCOUNTS| +|product-category|TRAVEL_CARDS| +|open-status|ALL| +|open-status|CLOSED| +|open-status|OPEN| + +> Example responses + +> 200 Response + +```json +{ + "data": { + "scheduledPayments": [ + { + "scheduledPaymentId": "string", + "nickname": "string", + "payerReference": "string", + "payeeReference": "string", + "status": "ACTIVE", + "from": { + "accountId": "string" + }, + "paymentSet": [ + { + "to": { + "toUType": "accountId", + "accountId": "string", + "payeeId": "string", + "nickname": "string", + "payeeReference": "string", + "digitalWallet": { + "name": "string", + "identifier": "string", + "type": "EMAIL", + "provider": "PAYPAL_AU" + }, + "domestic": { + "payeeAccountUType": "account", + "account": { + "accountName": "string", + "bsb": "string", + "accountNumber": "string" + }, + "card": { + "cardNumber": "string" + }, + "payId": { + "name": "string", + "identifier": "string", + "type": "ABN" + } + }, + "biller": { + "billerCode": "string", + "crn": "string", + "billerName": "string" + }, + "international": { + "beneficiaryDetails": { + "name": "string", + "country": "string", + "message": "string" + }, + "bankDetails": { + "country": "string", + "accountNumber": "string", + "bankAddress": { + "name": "string", + "address": "string" + }, + "beneficiaryBankBIC": "string", + "fedWireNumber": "string", + "sortCode": "string", + "chipNumber": "string", + "routingNumber": "string", + "legalEntityIdentifier": "string" + } + } + }, + "isAmountCalculated": true, + "amount": "string", + "currency": "string" + } + ], + "recurrence": { + "nextPaymentDate": "string", + "recurrenceUType": "eventBased", + "onceOff": { + "paymentDate": "string" + }, + "intervalSchedule": { + "finalPaymentDate": "string", + "paymentsRemaining": 1, + "nonBusinessDayTreatment": "AFTER", + "intervals": [ + { + "interval": "string", + "dayInInterval": "string" + } + ] + }, + "lastWeekDay": { + "finalPaymentDate": "string", + "paymentsRemaining": 1, + "interval": "string", + "lastWeekDay": "FRI", + "nonBusinessDayTreatment": "AFTER" + }, + "eventBased": { + "description": "string" + } + } + } + ] + }, + "links": { + "self": "string", + "first": "string", + "prev": "string", + "next": "string", + "last": "string" + }, + "meta": { + "totalRecords": 0, + "totalPages": 0 + } +} +``` + +

Responses

+ +|Status|Meaning|Description|Schema| +|---|---|---|---| +|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success|[ResponseBankingScheduledPaymentsListV2](#schemacdr-banking-apiresponsebankingscheduledpaymentslistv2)| +|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| +|406|[Not Acceptable](https://tools.ietf.org/html/rfc7231#section-6.5.6)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| +|422|[Unprocessable Entity](https://tools.ietf.org/html/rfc2518#section-10.3)|The following error codes MUST be supported:
|[ResponseErrorListV2](#schemacdr-banking-apiresponseerrorlistv2)| + +### Response Headers + +|Status|Header|Type|Format|Description| +|---|---|---|---|---| +|200|x-v|string||The [version](#response-headers) of the API end point that the data holder has responded with.| +|200|x-fapi-interaction-id|string||An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| +|400|x-fapi-interaction-id|string||An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| +|406|x-fapi-interaction-id|string||An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| +|422|x-fapi-interaction-id|string||An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.| + + + + + + + +

Schemas

+ + + + +

ResponseBankingScheduledPaymentsListV2

+ + + +```json +{ + "data": { + "scheduledPayments": [ + { + "scheduledPaymentId": "string", + "nickname": "string", + "payerReference": "string", + "payeeReference": "string", + "status": "ACTIVE", + "from": { + "accountId": "string" + }, + "paymentSet": [ + { + "to": { + "toUType": "accountId", + "accountId": "string", + "payeeId": "string", + "nickname": "string", + "payeeReference": "string", + "digitalWallet": { + "name": "string", + "identifier": "string", + "type": "EMAIL", + "provider": "PAYPAL_AU" + }, + "domestic": { + "payeeAccountUType": "account", + "account": { + "accountName": "string", + "bsb": "string", + "accountNumber": "string" + }, + "card": { + "cardNumber": "string" + }, + "payId": { + "name": "string", + "identifier": "string", + "type": "ABN" + } + }, + "biller": { + "billerCode": "string", + "crn": "string", + "billerName": "string" + }, + "international": { + "beneficiaryDetails": { + "name": "string", + "country": "string", + "message": "string" + }, + "bankDetails": { + "country": "string", + "accountNumber": "string", + "bankAddress": { + "name": "string", + "address": "string" + }, + "beneficiaryBankBIC": "string", + "fedWireNumber": "string", + "sortCode": "string", + "chipNumber": "string", + "routingNumber": "string", + "legalEntityIdentifier": "string" + } + } + }, + "isAmountCalculated": true, + "amount": "string", + "currency": "string" + } + ], + "recurrence": { + "nextPaymentDate": "string", + "recurrenceUType": "eventBased", + "onceOff": { + "paymentDate": "string" + }, + "intervalSchedule": { + "finalPaymentDate": "string", + "paymentsRemaining": 1, + "nonBusinessDayTreatment": "AFTER", + "intervals": [ + { + "interval": "string", + "dayInInterval": "string" + } + ] + }, + "lastWeekDay": { + "finalPaymentDate": "string", + "paymentsRemaining": 1, + "interval": "string", + "lastWeekDay": "FRI", + "nonBusinessDayTreatment": "AFTER" + }, + "eventBased": { + "description": "string" + } + } + } + ] + }, + "links": { + "self": "string", + "first": "string", + "prev": "string", + "next": "string", + "last": "string" + }, + "meta": { + "totalRecords": 0, + "totalPages": 0 + } +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|data|object|mandatory|none| +|» scheduledPayments|[[BankingScheduledPaymentV2](#schemacdr-banking-apibankingscheduledpaymentv2)]|mandatory|The list of scheduled payments to return| +|links|[LinksPaginated](#schemacdr-banking-apilinkspaginated)|mandatory|none| +|meta|[MetaPaginated](#schemacdr-banking-apimetapaginated)|mandatory|none| + +

BankingScheduledPaymentV2

+ + + +```json +{ + "scheduledPaymentId": "string", + "nickname": "string", + "payerReference": "string", + "payeeReference": "string", + "status": "ACTIVE", + "from": { + "accountId": "string" + }, + "paymentSet": [ + { + "to": { + "toUType": "accountId", + "accountId": "string", + "payeeId": "string", + "nickname": "string", + "payeeReference": "string", + "digitalWallet": { + "name": "string", + "identifier": "string", + "type": "EMAIL", + "provider": "PAYPAL_AU" + }, + "domestic": { + "payeeAccountUType": "account", + "account": { + "accountName": "string", + "bsb": "string", + "accountNumber": "string" + }, + "card": { + "cardNumber": "string" + }, + "payId": { + "name": "string", + "identifier": "string", + "type": "ABN" + } + }, + "biller": { + "billerCode": "string", + "crn": "string", + "billerName": "string" + }, + "international": { + "beneficiaryDetails": { + "name": "string", + "country": "string", + "message": "string" + }, + "bankDetails": { + "country": "string", + "accountNumber": "string", + "bankAddress": { + "name": "string", + "address": "string" + }, + "beneficiaryBankBIC": "string", + "fedWireNumber": "string", + "sortCode": "string", + "chipNumber": "string", + "routingNumber": "string", + "legalEntityIdentifier": "string" + } + } + }, + "isAmountCalculated": true, + "amount": "string", + "currency": "string" + } + ], + "recurrence": { + "nextPaymentDate": "string", + "recurrenceUType": "eventBased", + "onceOff": { + "paymentDate": "string" + }, + "intervalSchedule": { + "finalPaymentDate": "string", + "paymentsRemaining": 1, + "nonBusinessDayTreatment": "AFTER", + "intervals": [ + { + "interval": "string", + "dayInInterval": "string" + } + ] + }, + "lastWeekDay": { + "finalPaymentDate": "string", + "paymentsRemaining": 1, + "interval": "string", + "lastWeekDay": "FRI", + "nonBusinessDayTreatment": "AFTER" + }, + "eventBased": { + "description": "string" + } + } +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|scheduledPaymentId|[ASCIIString](#common-field-types)|mandatory|A unique ID of the scheduled payment adhering to the standards for ID permanence| +|nickname|string|optional|The short display name of the scheduled payment as provided by the customer if provided. Where a customer has not provided a nickname, a display name derived by the bank for the scheduled payment should be provided that is consistent with existing digital banking channels| +|payerReference|string|mandatory|The reference for the transaction that will be used by the originating institution for the purposes of constructing a statement narrative on the payer’s account. Empty string if no data provided| +|payeeReference|string|conditional|The reference for the transaction, if applicable, that will be provided by the originating institution for all payments in the payment set. Empty string if no data provided| +|status|string|mandatory|Indicates whether the schedule is currently active. The value SKIP is equivalent to ACTIVE except that the customer has requested the next normal occurrence to be skipped.| +|from|[BankingScheduledPaymentFrom](#schemacdr-banking-apibankingscheduledpaymentfrom)|mandatory|Object containing details of the source of the payment. Currently only specifies an account ID but provided as an object to facilitate future extensibility and consistency with the to object| +|paymentSet|[[BankingScheduledPaymentSetV2](#schemacdr-banking-apibankingscheduledpaymentsetv2)]|mandatory|[The set of payment amounts and destination accounts for this payment accommodating multi-part payments. A single entry indicates a simple payment with one destination account. Must have at least one entry]| +|recurrence|[BankingScheduledPaymentRecurrence](#schemacdr-banking-apibankingscheduledpaymentrecurrence)|mandatory|Object containing the detail of the schedule for the payment| + +#### Enumerated Values + +|Property|Value| +|---|---| +|status|ACTIVE| +|status|INACTIVE| +|status|SKIP| + +

BankingScheduledPaymentSetV2

+ + + +```json +{ + "to": { + "toUType": "accountId", + "accountId": "string", + "payeeId": "string", + "nickname": "string", + "payeeReference": "string", + "digitalWallet": { + "name": "string", + "identifier": "string", + "type": "EMAIL", + "provider": "PAYPAL_AU" + }, + "domestic": { + "payeeAccountUType": "account", + "account": { + "accountName": "string", + "bsb": "string", + "accountNumber": "string" + }, + "card": { + "cardNumber": "string" + }, + "payId": { + "name": "string", + "identifier": "string", + "type": "ABN" + } + }, + "biller": { + "billerCode": "string", + "crn": "string", + "billerName": "string" + }, + "international": { + "beneficiaryDetails": { + "name": "string", + "country": "string", + "message": "string" + }, + "bankDetails": { + "country": "string", + "accountNumber": "string", + "bankAddress": { + "name": "string", + "address": "string" + }, + "beneficiaryBankBIC": "string", + "fedWireNumber": "string", + "sortCode": "string", + "chipNumber": "string", + "routingNumber": "string", + "legalEntityIdentifier": "string" + } + } + }, + "isAmountCalculated": true, + "amount": "string", + "currency": "string" +} + +``` + +*The set of payment amounts and destination accounts for this payment accommodating multi-part payments. A single entry indicates a simple payment with one destination account. Must have at least one entry* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|to|[BankingScheduledPaymentToV2](#schemacdr-banking-apibankingscheduledpaymenttov2)|mandatory|Object containing details of the destination of the payment. Used to specify a variety of payment destination types| +|isAmountCalculated|[Boolean](#common-field-types)|optional|Flag indicating whether the amount of the payment is calculated based on the context of the event. For instance a payment to reduce the balance of a credit card to zero. If absent then false is assumed| +|amount|[AmountString](#common-field-types)|conditional|The amount of the next payment if known. Mandatory unless the isAmountCalculated field is set to true. Must be zero or positive if present| +|currency|[CurrencyString](#common-field-types)|optional|The currency for the payment. AUD assumed if not present| + +

BankingScheduledPaymentToV2

+ + + +```json +{ + "toUType": "accountId", + "accountId": "string", + "payeeId": "string", + "nickname": "string", + "payeeReference": "string", + "digitalWallet": { + "name": "string", + "identifier": "string", + "type": "EMAIL", + "provider": "PAYPAL_AU" + }, + "domestic": { + "payeeAccountUType": "account", + "account": { + "accountName": "string", + "bsb": "string", + "accountNumber": "string" + }, + "card": { + "cardNumber": "string" + }, + "payId": { + "name": "string", + "identifier": "string", + "type": "ABN" + } + }, + "biller": { + "billerCode": "string", + "crn": "string", + "billerName": "string" + }, + "international": { + "beneficiaryDetails": { + "name": "string", + "country": "string", + "message": "string" + }, + "bankDetails": { + "country": "string", + "accountNumber": "string", + "bankAddress": { + "name": "string", + "address": "string" + }, + "beneficiaryBankBIC": "string", + "fedWireNumber": "string", + "sortCode": "string", + "chipNumber": "string", + "routingNumber": "string", + "legalEntityIdentifier": "string" + } + } +} + +``` + +*Object containing details of the destination of the payment. Used to specify a variety of payment destination types* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|toUType|string|mandatory|The type of object provided that specifies the destination of the funds for the payment.| +|accountId|[ASCIIString](#common-field-types)|conditional|Present if toUType is set to accountId. Indicates that the payment is to another account that is accessible under the current consent| +|payeeId|[ASCIIString](#common-field-types)|conditional|Present if toUType is set to payeeId. Indicates that the payment is to registered payee that can be accessed using the payee end point. If the Bank Payees scope has not been consented to then a payeeId should not be provided and the full payee details should be provided instead| +|nickname|string|conditional|The short display name of the payee as provided by the customer unless toUType is set to payeeId. Where a customer has not provided a nickname, a display name derived by the bank for payee should be provided that is consistent with existing digital banking channels| +|payeeReference|string|conditional|The reference for the transaction, if applicable, that will be provided by the originating institution for the specific payment. If not empty, it overrides the value provided at the BankingScheduledPayment level.| +|digitalWallet|[BankingDigitalWalletPayee](#schemacdr-banking-apibankingdigitalwalletpayee)|conditional|none| +|domestic|[BankingDomesticPayee](#schemacdr-banking-apibankingdomesticpayee)|conditional|none| +|biller|[BankingBillerPayee](#schemacdr-banking-apibankingbillerpayee)|conditional|none| +|international|[BankingInternationalPayee](#schemacdr-banking-apibankinginternationalpayee)|conditional|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|toUType|accountId| +|toUType|biller| +|toUType|digitalWallet| +|toUType|domestic| +|toUType|international| +|toUType|payeeId| + +

BankingScheduledPaymentFrom

+ + + +```json +{ + "accountId": "string" +} + +``` + +*Object containing details of the source of the payment. Currently only specifies an account ID but provided as an object to facilitate future extensibility and consistency with the to object* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|accountId|[ASCIIString](#common-field-types)|mandatory|ID of the account that is the source of funds for the payment| + +

BankingScheduledPaymentRecurrence

+ + + +```json +{ + "nextPaymentDate": "string", + "recurrenceUType": "eventBased", + "onceOff": { + "paymentDate": "string" + }, + "intervalSchedule": { + "finalPaymentDate": "string", + "paymentsRemaining": 1, + "nonBusinessDayTreatment": "AFTER", + "intervals": [ + { + "interval": "string", + "dayInInterval": "string" + } + ] + }, + "lastWeekDay": { + "finalPaymentDate": "string", + "paymentsRemaining": 1, + "interval": "string", + "lastWeekDay": "FRI", + "nonBusinessDayTreatment": "AFTER" + }, + "eventBased": { + "description": "string" + } +} + +``` + +*Object containing the detail of the schedule for the payment* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|nextPaymentDate|[DateString](#common-field-types)|optional|The date of the next payment under the recurrence schedule| +|recurrenceUType|string|mandatory|The type of recurrence used to define the schedule| +|onceOff|[BankingScheduledPaymentRecurrenceOnceOff](#schemacdr-banking-apibankingscheduledpaymentrecurrenceonceoff)|conditional|Indicates that the payment is a once off payment on a specific future date. Mandatory if recurrenceUType is set to onceOff| +|intervalSchedule|[BankingScheduledPaymentRecurrenceIntervalSchedule](#schemacdr-banking-apibankingscheduledpaymentrecurrenceintervalschedule)|conditional|Indicates that the schedule of payments is defined by a series of intervals. Mandatory if recurrenceUType is set to intervalSchedule| +|lastWeekDay|[BankingScheduledPaymentRecurrenceLastWeekday](#schemacdr-banking-apibankingscheduledpaymentrecurrencelastweekday)|conditional|Indicates that the schedule of payments is defined according to the last occurrence of a specific weekday in an interval. Mandatory if recurrenceUType is set to lastWeekDay| +|eventBased|[BankingScheduledPaymentRecurrenceEventBased](#schemacdr-banking-apibankingscheduledpaymentrecurrenceeventbased)|conditional|Indicates that the schedule of payments is defined according to an external event that cannot be predetermined. Mandatory if recurrenceUType is set to eventBased| + +#### Enumerated Values + +|Property|Value| +|---|---| +|recurrenceUType|eventBased| +|recurrenceUType|intervalSchedule| +|recurrenceUType|lastWeekDay| +|recurrenceUType|onceOff| + +

BankingScheduledPaymentRecurrenceOnceOff

+ + + +```json +{ + "paymentDate": "string" +} + +``` + +*Indicates that the payment is a once off payment on a specific future date. Mandatory if recurrenceUType is set to onceOff* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|paymentDate|[DateString](#common-field-types)|mandatory|The scheduled date for the once off payment| + +

BankingScheduledPaymentRecurrenceIntervalSchedule

+ + + +```json +{ + "finalPaymentDate": "string", + "paymentsRemaining": 1, + "nonBusinessDayTreatment": "AFTER", + "intervals": [ + { + "interval": "string", + "dayInInterval": "string" + } + ] +} + +``` + +*Indicates that the schedule of payments is defined by a series of intervals. Mandatory if recurrenceUType is set to intervalSchedule* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|finalPaymentDate|[DateString](#common-field-types)|optional|The limit date after which no more payments should be made using this schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely| +|paymentsRemaining|[PositiveInteger](#common-field-types)|optional|Indicates the number of payments remaining in the schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value, If neither field is present the payments will continue indefinitely| +|nonBusinessDayTreatment|string|optional|Enumerated field giving the treatment where a scheduled payment date is not a business day. If absent assumed to be ON.
**AFTER** - If a scheduled payment date is a non-business day the payment will be made on the first business day after the scheduled payment date.
**BEFORE** - If a scheduled payment date is a non-business day the payment will be made on the first business day before the scheduled payment date.
**ON** - If a scheduled payment date is a non-business day the payment will be made on that day regardless.
**ONLY** - Payments only occur on business days. If a scheduled payment date is a non-business day the payment will be ignored| +|intervals|[[BankingScheduledPaymentInterval](#schemacdr-banking-apibankingscheduledpaymentinterval)]|mandatory|An array of interval objects defining the payment schedule. Each entry in the array is additive, in that it adds payments to the overall payment schedule. If multiple intervals result in a payment on the same day then only one payment will be made. Must have at least one entry| + +#### Enumerated Values + +|Property|Value| +|---|---| +|nonBusinessDayTreatment|AFTER| +|nonBusinessDayTreatment|BEFORE| +|nonBusinessDayTreatment|ON| +|nonBusinessDayTreatment|ONLY| + +

BankingScheduledPaymentInterval

+ + + +```json +{ + "interval": "string", + "dayInInterval": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|interval|[ExternalRef](#common-field-types)|mandatory|An interval for the payment. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) with components less than a day in length ignored. This duration defines the period between payments starting with nextPaymentDate| +|dayInInterval|[ExternalRef](#common-field-types)|optional|Uses an interval to define the ordinal day within the interval defined by the interval field on which the payment occurs. If the resulting duration is 0 days in length or larger than the number of days in the interval then the payment will occur on the last day of the interval. A duration of 1 day indicates the first day of the interval. If absent the assumed value is P1D. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) with components less than a day in length ignored. The first day of a week is considered to be Monday.| + +

BankingScheduledPaymentRecurrenceLastWeekday

+ + + +```json +{ + "finalPaymentDate": "string", + "paymentsRemaining": 1, + "interval": "string", + "lastWeekDay": "FRI", + "nonBusinessDayTreatment": "AFTER" +} + +``` + +*Indicates that the schedule of payments is defined according to the last occurrence of a specific weekday in an interval. Mandatory if recurrenceUType is set to lastWeekDay* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|finalPaymentDate|[DateString](#common-field-types)|optional|The limit date after which no more payments should be made using this schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely| +|paymentsRemaining|[PositiveInteger](#common-field-types)|optional|Indicates the number of payments remaining in the schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely| +|interval|[ExternalRef](#common-field-types)|mandatory|The interval for the payment. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) with components less than a day in length ignored. This duration defines the period between payments starting with nextPaymentDate| +|lastWeekDay|string|mandatory|The weekDay specified. The payment will occur on the last occurrence of this weekday in the interval.| +|nonBusinessDayTreatment|string|optional|Enumerated field giving the treatment where a scheduled payment date is not a business day. If absent assumed to be ON.
**AFTER** - If a scheduled payment date is a non-business day the payment will be made on the first business day after the scheduled payment date.
**BEFORE** - If a scheduled payment date is a non-business day the payment will be made on the first business day before the scheduled payment date.
**ON** - If a scheduled payment date is a non-business day the payment will be made on that day regardless.
**ONLY** - Payments only occur on business days. If a scheduled payment date is a non-business day the payment will be ignored| + +#### Enumerated Values + +|Property|Value| +|---|---| +|lastWeekDay|FRI| +|lastWeekDay|MON| +|lastWeekDay|SAT| +|lastWeekDay|SUN| +|lastWeekDay|THU| +|lastWeekDay|TUE| +|lastWeekDay|WED| +|nonBusinessDayTreatment|AFTER| +|nonBusinessDayTreatment|BEFORE| +|nonBusinessDayTreatment|ON| +|nonBusinessDayTreatment|ONLY| + +

BankingScheduledPaymentRecurrenceEventBased

+ + + +```json +{ + "description": "string" +} + +``` + +*Indicates that the schedule of payments is defined according to an external event that cannot be predetermined. Mandatory if recurrenceUType is set to eventBased* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|description|string|mandatory|Description of the event and conditions that will result in the payment. Expected to be formatted for display to a customer| + + + +

BankingDomesticPayee

+ + + +```json +{ + "payeeAccountUType": "account", + "account": { + "accountName": "string", + "bsb": "string", + "accountNumber": "string" + }, + "card": { + "cardNumber": "string" + }, + "payId": { + "name": "string", + "identifier": "string", + "type": "ABN" + } +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|payeeAccountUType|string|mandatory|Type of account object included. Valid values are: **account** A standard Australian account defined by BSB/Account Number. **card** A credit or charge card to pay to (note that PANs are masked). **payId** A PayID recognised by NPP| +|account|[BankingDomesticPayeeAccount](#schemacdr-banking-apibankingdomesticpayeeaccount)|conditional|none| +|card|[BankingDomesticPayeeCard](#schemacdr-banking-apibankingdomesticpayeecard)|conditional|none| +|payId|[BankingDomesticPayeePayId](#schemacdr-banking-apibankingdomesticpayeepayid)|conditional|none| + +#### Enumerated Values + +|Property|Value| +|---|---| +|payeeAccountUType|account| +|payeeAccountUType|card| +|payeeAccountUType|payId| + +

BankingDomesticPayeeAccount

+ + + +```json +{ + "accountName": "string", + "bsb": "string", + "accountNumber": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|accountName|string|optional|Name of the account to pay to| +|bsb|string|mandatory|BSB of the account to pay to| +|accountNumber|string|mandatory|Number of the account to pay to| + +

BankingDomesticPayeeCard

+ + + +```json +{ + "cardNumber": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|cardNumber|[MaskedPANString](#common-field-types)|mandatory|Name of the account to pay to| + +

BankingDomesticPayeePayId

+ + + +```json +{ + "name": "string", + "identifier": "string", + "type": "ABN" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|name|string|optional|The name assigned to the PayID by the owner of the PayID| +|identifier|string|mandatory|The identifier of the PayID (dependent on type)| +|type|string|mandatory|The type of the PayID| + +#### Enumerated Values + +|Property|Value| +|---|---| +|type|ABN| +|type|EMAIL| +|type|ORG_IDENTIFIER| +|type|TELEPHONE| + +

BankingBillerPayee

+ + + +```json +{ + "billerCode": "string", + "crn": "string", + "billerName": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|billerCode|string|mandatory|BPAY Biller Code of the Biller| +|crn|string|conditional|BPAY CRN of the Biller (if available).
Where the CRN contains sensitive information, it should be masked in line with how the Data Holder currently displays account identifiers in their existing online banking channels. If the contents of the CRN match the format of a Credit Card PAN they should be masked according to the rules applicable for MaskedPANString. If the contents are otherwise sensitive, then it should be masked using the rules applicable for the MaskedAccountString common type.| +|billerName|string|mandatory|Name of the Biller| + +

BankingInternationalPayee

+ + + +```json +{ + "beneficiaryDetails": { + "name": "string", + "country": "string", + "message": "string" + }, + "bankDetails": { + "country": "string", + "accountNumber": "string", + "bankAddress": { + "name": "string", + "address": "string" + }, + "beneficiaryBankBIC": "string", + "fedWireNumber": "string", + "sortCode": "string", + "chipNumber": "string", + "routingNumber": "string", + "legalEntityIdentifier": "string" + } +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|beneficiaryDetails|object|mandatory|none| +|» name|string|optional|Name of the beneficiary| +|» country|[ExternalRef](#common-field-types)|mandatory|Country where the beneficiary resides. A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code| +|» message|string|optional|Response message for the payment| +|bankDetails|object|mandatory|none| +|» country|[ExternalRef](#common-field-types)|mandatory|Country of the recipient institution. A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code| +|» accountNumber|string|mandatory|Account Targeted for payment| +|» bankAddress|object|optional|none| +|»» name|string|mandatory|Name of the recipient Bank| +|»» address|string|mandatory|Address of the recipient Bank| +|» beneficiaryBankBIC|[ExternalRef](#common-field-types)|optional|Swift bank code. Aligns with standard [ISO 9362](https://www.iso.org/standard/60390.html)| +|» fedWireNumber|string|optional|Number for Fedwire payment (Federal Reserve Wire Network)| +|» sortCode|string|optional|Sort code used for account identification in some jurisdictions| +|» chipNumber|string|optional|Number for the Clearing House Interbank Payments System| +|» routingNumber|string|optional|International bank routing number| +|» legalEntityIdentifier|[ExternalRef](#common-field-types)|optional|The legal entity identifier (LEI) for the beneficiary. Aligns with [ISO 17442](https://www.iso.org/standard/59771.html)| + +

BankingDigitalWalletPayee

+ + + +```json +{ + "name": "string", + "identifier": "string", + "type": "EMAIL", + "provider": "PAYPAL_AU" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|name|string|mandatory|The display name of the wallet as given by the customer, else a default value defined by the data holder| +|identifier|string|mandatory|The identifier of the digital wallet (dependent on type)| +|type|string|mandatory|The type of the digital wallet identifier| +|provider|string|mandatory|The provider of the digital wallet| + +#### Enumerated Values + +|Property|Value| +|---|---| +|type|EMAIL| +|type|CONTACT_NAME| +|type|TELEPHONE| +|provider|PAYPAL_AU| +|provider|OTHER| + + + +

LinksPaginated

+ + + +```json +{ + "self": "string", + "first": "string", + "prev": "string", + "next": "string", + "last": "string" +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|self|[URIString](#common-field-types)|mandatory|Fully qualified link that generated the current response document| +|first|[URIString](#common-field-types)|conditional|URI to the first page of this set. Mandatory if this response is not the first page| +|prev|[URIString](#common-field-types)|conditional|URI to the previous page of this set. Mandatory if this response is not the first page| +|next|[URIString](#common-field-types)|conditional|URI to the next page of this set. Mandatory if this response is not the last page| +|last|[URIString](#common-field-types)|conditional|URI to the last page of this set. Mandatory if this response is not the last page| + +

MetaPaginated

+ + + +```json +{ + "totalRecords": 0, + "totalPages": 0 +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|totalRecords|[NaturalNumber](#common-field-types)|mandatory|The total number of records in the full set. See [pagination](#pagination).| +|totalPages|[NaturalNumber](#common-field-types)|mandatory|The total number of pages in the full set. See [pagination](#pagination).| + + + +

MetaError

+ + + +```json +{ + "urn": "string" +} + +``` + +*Additional data for customised error codes* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|urn|string|conditional|The CDR error code URN which the application-specific error code extends. Mandatory if the error `code` is an application-specific error rather than a standardised error code.| + +

ResponseErrorListV2

+ + + +```json +{ + "errors": [ + { + "code": "string", + "title": "string", + "detail": "string", + "meta": { + "urn": "string" + } + } + ] +} + +``` + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|errors|[object]|mandatory|none| +|» code|string|mandatory|The code of the error encountered. Where the error is specific to the respondent, an application-specific error code, expressed as a string value. If the error is application-specific, the URN code that the specific error extends must be provided in the meta object. Otherwise, the value is the error code URN.| +|» title|string|mandatory|A short, human-readable summary of the problem that MUST NOT change from occurrence to occurrence of the problem represented by the error code.| +|» detail|string|mandatory|A human-readable explanation specific to this occurrence of the problem.| +|» meta|[MetaError](#schemacdr-banking-apimetaerror)|optional|Additional data for customised error codes| + +

BankingProductCategory

+ + + +```json +"BUSINESS_LOANS" + +``` + +*The category to which a product or account belongs. See [here](#product-categories) for more details* + +### Properties + +|Name|Type|Required|Description| +|---|---|---|---| +|*anonymous*|string|mandatory|The category to which a product or account belongs. See [here](#product-categories) for more details| + +#### Enumerated Values + +|Property|Value| +|---|---| +|*anonymous*|BUSINESS_LOANS| +|*anonymous*|CRED_AND_CHRG_CARDS| +|*anonymous*|LEASES| +|*anonymous*|MARGIN_LOANS| +|*anonymous*|OVERDRAFTS| +|*anonymous*|PERS_LOANS| +|*anonymous*|REGULATED_TRUST_ACCOUNTS| +|*anonymous*|RESIDENTIAL_MORTGAGES| +|*anonymous*|TERM_DEPOSITS| +|*anonymous*|TRADE_FINANCE| +|*anonymous*|TRANS_AND_SAVINGS_ACCOUNTS| +|*anonymous*|TRAVEL_CARDS| + diff --git a/slate/source/includes/releasenotes/releasenotes.1.28.0.html.md b/slate/source/includes/releasenotes/releasenotes.1.28.0.html.md index 551c24d3..43d44d91 100644 --- a/slate/source/includes/releasenotes/releasenotes.1.28.0.html.md +++ b/slate/source/includes/releasenotes/releasenotes.1.28.0.html.md @@ -27,12 +27,12 @@ This release addresses the following change requests raised on [Standards Mainte This release addresses the following Decision Proposals published on [Standards](https://github.com/ConsumerDataStandardsAustralia/standards/issues): -- TBA +- [Decision Proposal 306 - Updates to Banking Product and Account Detail](https://github.com/ConsumerDataStandardsAustralia/standards/issues/306) (See [Decision Proposal 306 Candidate](#additional-standards) below) ## General Changes |Change|Description|Link| |------|-----------|----| -| TBA | TBA | TBA | +| Enum property type | Properties defined with enumerated values will now show the type as 'Enum' instead of 'string' | All schema Properties tables | ## Introduction @@ -80,7 +80,7 @@ This release addresses the following Decision Proposals published on [Standards] |Change|Description|Link| |------|-----------|----| -| TBA | TBA | TBA | +| Decision Proposal 306 Candidate | | [Candidate Standards](../../#candidate-standards) | ## Known Issues diff --git a/swagger-gen/api/cds_banking_dp306.json b/swagger-gen/api/cds_banking_dp306.json new file mode 100644 index 00000000..3c577f35 --- /dev/null +++ b/swagger-gen/api/cds_banking_dp306.json @@ -0,0 +1,7186 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "CDR Banking API", + "description": "Consumer Data Standards APIs created by the Data Standards Body (DSB), with the Data Standards Chair as the decision maker to meet the needs of the Consumer Data Right", + "contact": { + "name": "Consumer Data Standards", + "url": "https://consumerdatastandards.gov.au", + "email": "contact@consumerdatastandards.gov.au" + }, + "license": { + "name": "MIT License", + "url": "https://opensource.org/licenses/MIT" + }, + "version": "1.28.0" + }, + "servers": [ + { + "url": "https://data.holder.com.au/cds-au/v1" + } + ], + "paths": { + "/banking/accounts": { + "get": { + "tags": [ + "Banking", + "Accounts" + ], + "summary": "Get Accounts", + "description": "Obtain a list of accounts.\n\nObsolete versions: [v1](../../../../includes/obsolete/get-accounts-v1.html), [v2](../../../../includes/obsolete/get-accounts-v2.html)", + "operationId": "listAccounts", + "parameters": [ + { + "name": "product-category", + "in": "query", + "description": "Used to filter results on the `productCategory` field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.)", + "schema": { + "type": "string", + "enum": [ + "BUSINESS_LOANS", + "BUY_NOW_PAY_LATER", + "CRED_AND_CHRG_CARDS", + "LEASES", + "MARGIN_LOANS", + "OVERDRAFTS", + "PERS_LOANS", + "REGULATED_TRUST_ACCOUNTS", + "RESIDENTIAL_MORTGAGES", + "TERM_DEPOSITS", + "TRADE_FINANCE", + "TRANS_AND_SAVINGS_ACCOUNTS", + "TRAVEL_CARDS" + ] + } + }, + { + "name": "open-status", + "in": "query", + "description": "Used to filter results according to open/closed status. Values can be `OPEN`, `CLOSED` or `ALL`. If absent then `ALL` is assumed", + "schema": { + "type": "string", + "default": "ALL", + "enum": [ + "ALL", + "CLOSED", + "OPEN" + ] + } + }, + { + "name": "is-owned", + "in": "query", + "description": "Filters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts", + "schema": { + "type": "boolean", + "x-cds-type": "Boolean" + }, + "x-cds-type": "Boolean" + }, + { + "name": "page", + "in": "query", + "description": "Page of results to request (standard pagination)", + "schema": { + "type": "integer", + "default": 1, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "page-size", + "in": "query", + "description": "Page size to request. Default is 25 (standard pagination)", + "schema": { + "type": "integer", + "default": 25, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "x-v", + "in": "header", + "description": "Version of the API endpoint requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "x-min-v", + "in": "header", + "description": "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-interaction-id", + "in": "header", + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-auth-date", + "in": "header", + "description": "The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true + }, + "x-conditional": true + }, + { + "name": "x-fapi-customer-ip-address", + "in": "header", + "description": "The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "schema": { + "type": "string" + } + }, + { + "name": "x-cds-client-headers", + "in": "header", + "description": "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true, + "x-cds-type": "Base64" + }, + "x-conditional": true, + "x-cds-type": "Base64" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-v": { + "description": "The [version](#response-headers) of the API endpoint that the data holder has responded with.", + "schema": { + "type": "string" + } + }, + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseBankingAccountListV3" + } + } + } + }, + "400": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "406": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "422": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + } + }, + "x-scopes": [ + "bank:accounts.basic:read" + ], + "x-version": "3" + } + }, + "/banking/accounts/balances": { + "get": { + "tags": [ + "Banking", + "Accounts" + ], + "summary": "Get Bulk Balances", + "description": "Obtain balances for multiple, filtered accounts\n\nObsolete versions: [v1](../../../../includes/obsolete/get-bulk-balances-v1.html)", + "operationId": "listBalancesBulk", + "parameters": [ + { + "name": "product-category", + "in": "query", + "description": "Used to filter results on the `productCategory` field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.", + "schema": { + "type": "string", + "enum": [ + "BUSINESS_LOANS", + "BUY_NOW_PAY_LATER", + "CRED_AND_CHRG_CARDS", + "LEASES", + "MARGIN_LOANS", + "OVERDRAFTS", + "PERS_LOANS", + "REGULATED_TRUST_ACCOUNTS", + "RESIDENTIAL_MORTGAGES", + "TERM_DEPOSITS", + "TRADE_FINANCE", + "TRANS_AND_SAVINGS_ACCOUNTS", + "TRAVEL_CARDS" + ] + } + }, + { + "name": "open-status", + "in": "query", + "description": "Used to filter results according to open/closed status. Values can be `OPEN`, `CLOSED` or `ALL`. If absent then `ALL` is assumed", + "schema": { + "type": "string", + "default": "ALL", + "enum": [ + "ALL", + "CLOSED", + "OPEN" + ] + } + }, + { + "name": "is-owned", + "in": "query", + "description": "Filters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts", + "schema": { + "type": "boolean", + "x-cds-type": "Boolean" + }, + "x-cds-type": "Boolean" + }, + { + "name": "page", + "in": "query", + "description": "Page of results to request (standard pagination)", + "schema": { + "type": "integer", + "default": 1, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "page-size", + "in": "query", + "description": "Page size to request. Default is 25 (standard pagination)", + "schema": { + "type": "integer", + "default": 25, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "x-v", + "in": "header", + "description": "Version of the API endpoint requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "x-min-v", + "in": "header", + "description": "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-interaction-id", + "in": "header", + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-auth-date", + "in": "header", + "description": "The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true + }, + "x-conditional": true + }, + { + "name": "x-fapi-customer-ip-address", + "in": "header", + "description": "The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "schema": { + "type": "string" + } + }, + { + "name": "x-cds-client-headers", + "in": "header", + "description": "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true, + "x-cds-type": "Base64" + }, + "x-conditional": true, + "x-cds-type": "Base64" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-v": { + "description": "The [version](#response-headers) of the API endpoint that the data holder has responded with.", + "schema": { + "type": "string" + } + }, + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseBankingAccountsBalanceList" + } + } + } + }, + "400": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "406": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "422": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + } + }, + "x-scopes": [ + "bank:accounts.basic:read" + ], + "x-version": "2" + }, + "post": { + "tags": [ + "Banking", + "Accounts" + ], + "summary": "Get Balances For Specific Accounts", + "description": "Obtain balances for a specified list of accounts", + "operationId": "listBalancesSpecificAccounts", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "Page of results to request (standard pagination)", + "schema": { + "type": "integer", + "default": 1, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "page-size", + "in": "query", + "description": "Page size to request. Default is 25 (standard pagination)", + "schema": { + "type": "integer", + "default": 25, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "x-v", + "in": "header", + "description": "Version of the API endpoint requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "x-min-v", + "in": "header", + "description": "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-interaction-id", + "in": "header", + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-auth-date", + "in": "header", + "description": "The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true + }, + "x-conditional": true + }, + { + "name": "x-fapi-customer-ip-address", + "in": "header", + "description": "The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "schema": { + "type": "string" + } + }, + { + "name": "x-cds-client-headers", + "in": "header", + "description": "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true, + "x-cds-type": "Base64" + }, + "x-conditional": true, + "x-cds-type": "Base64" + } + ], + "requestBody": { + "description": "The list of account IDs to obtain balances for", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RequestAccountIds" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Success", + "headers": { + "x-v": { + "description": "The [version](#response-headers) of the API endpoint that the data holder has responded with.", + "schema": { + "type": "string" + } + }, + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseBankingAccountsBalanceList" + } + } + } + }, + "400": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "406": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "422": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + } + }, + "x-scopes": [ + "bank:accounts.basic:read" + ], + "x-version": "1", + "x-codegen-request-body-name": "accountIds" + } + }, + "/banking/accounts/{accountId}/balance": { + "get": { + "tags": [ + "Banking", + "Accounts" + ], + "summary": "Get Account Balance", + "description": "Obtain the balance for a single specified account", + "operationId": "getBalance", + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "ID of the specific account requested", + "required": true, + "schema": { + "type": "string", + "x-cds-type": "ASCIIString" + }, + "x-cds-type": "ASCIIString" + }, + { + "name": "x-v", + "in": "header", + "description": "Version of the API endpoint requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "x-min-v", + "in": "header", + "description": "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-interaction-id", + "in": "header", + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-auth-date", + "in": "header", + "description": "The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true + }, + "x-conditional": true + }, + { + "name": "x-fapi-customer-ip-address", + "in": "header", + "description": "The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "schema": { + "type": "string" + } + }, + { + "name": "x-cds-client-headers", + "in": "header", + "description": "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true, + "x-cds-type": "Base64" + }, + "x-conditional": true, + "x-cds-type": "Base64" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-v": { + "description": "The [version](#response-headers) of the API endpoint that the data holder has responded with.", + "schema": { + "type": "string" + } + }, + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseBankingAccountsBalanceById" + } + } + } + }, + "400": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "404": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "406": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + } + }, + "x-scopes": [ + "bank:accounts.basic:read" + ], + "x-version": "1" + } + }, + "/banking/accounts/{accountId}": { + "get": { + "tags": [ + "Banking", + "Accounts" + ], + "summary": "Get Account Detail", + "description": "Obtain detailed information on a single account.\n\nObsolete versions: [v1](../../../../includes/obsolete/get-account-detail-v1.html), [v2](../../../../includes/obsolete/get-account-detail-v2.html), [v3](../../../../includes/obsolete/get-account-detail-v3.html)", + "operationId": "getAccountDetail", + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "A tokenised identifier for the account which is unique but not shareable", + "required": true, + "schema": { + "type": "string", + "x-cds-type": "ASCIIString" + }, + "x-cds-type": "ASCIIString" + }, + { + "name": "x-v", + "in": "header", + "description": "Version of the API endpoint requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "x-min-v", + "in": "header", + "description": "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-interaction-id", + "in": "header", + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-auth-date", + "in": "header", + "description": "The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true + }, + "x-conditional": true + }, + { + "name": "x-fapi-customer-ip-address", + "in": "header", + "description": "The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "schema": { + "type": "string" + } + }, + { + "name": "x-cds-client-headers", + "in": "header", + "description": "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true, + "x-cds-type": "Base64" + }, + "x-conditional": true, + "x-cds-type": "Base64" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-v": { + "description": "The [version](#response-headers) of the API endpoint that the data holder has responded with.", + "schema": { + "type": "string" + } + }, + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseBankingAccountByIdV4" + } + } + } + }, + "400": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "404": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "406": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + } + }, + "x-scopes": [ + "bank:accounts.detail:read" + ], + "x-version": "4" + } + }, + "/banking/accounts/{accountId}/transactions": { + "get": { + "tags": [ + "Banking", + "Accounts" + ], + "summary": "Get Transactions For Account", + "description": "Obtain transactions for a specific account.\n\nSome general notes that apply to all endpoints that retrieve transactions:\n\n- Where multiple transactions are returned, transactions should be ordered according to effective date in descending order\n- As the date and time for a transaction can alter depending on status and transaction type two separate date/times are included in the payload. There are still some scenarios where neither of these time stamps is available. For the purpose of filtering and ordering it is expected that the data holder will use the \"effective\" date/time which will be defined as:\n - Posted date/time if available, then\n - Execution date/time if available, then\n - A reasonable date/time nominated by the data holder using internal data structures\n- For transaction amounts it should be assumed that a negative value indicates a reduction of the available balance on the account while a positive value indicates an increase in the available balance on the account\n- For aggregated transactions (ie. groups of sub transactions reported as a single entry for the account) only the aggregated information, with as much consistent information across the subsidiary transactions as possible, is required to be shared", + "operationId": "getTransactions", + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "ID of the account to get transactions for. Must have previously been returned by one of the account list endpoints.", + "required": true, + "schema": { + "type": "string", + "x-cds-type": "ASCIIString" + }, + "x-cds-type": "ASCIIString" + }, + { + "name": "oldest-time", + "in": "query", + "description": "Constrain the transaction history request to transactions with effective time at or after this date/time. If absent defaults to newest-time minus 90 days. Format is aligned to DateTimeString common type", + "schema": { + "type": "string", + "x-cds-type": "DateTimeString" + }, + "x-cds-type": "DateTimeString" + }, + { + "name": "newest-time", + "in": "query", + "description": "Constrain the transaction history request to transactions with effective time at or before this date/time. If absent defaults to today. Format is aligned to DateTimeString common type", + "schema": { + "type": "string", + "x-cds-type": "DateTimeString" + }, + "x-cds-type": "DateTimeString" + }, + { + "name": "min-amount", + "in": "query", + "description": "Filter transactions to only transactions with amounts higher than or equal to this amount", + "schema": { + "type": "string", + "x-cds-type": "AmountString" + }, + "x-cds-type": "AmountString" + }, + { + "name": "max-amount", + "in": "query", + "description": "Filter transactions to only transactions with amounts less than or equal to this amount", + "schema": { + "type": "string", + "x-cds-type": "AmountString" + }, + "x-cds-type": "AmountString" + }, + { + "name": "text", + "in": "query", + "description": "Filter transactions to only transactions where this string value is found as a substring of either the reference or description fields. Format is arbitrary ASCII string. This parameter is optionally implemented by data holders. If it is not implemented then a response should be provided as normal without text filtering applied and an additional boolean field named isQueryParamUnsupported should be included in the meta object and set to true (whether the text parameter is supplied or not)", + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Page of results to request (standard pagination)", + "schema": { + "type": "integer", + "default": 1, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "page-size", + "in": "query", + "description": "Page size to request. Default is 25 (standard pagination)", + "schema": { + "type": "integer", + "default": 25, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "x-v", + "in": "header", + "description": "Version of the API endpoint requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "x-min-v", + "in": "header", + "description": "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-interaction-id", + "in": "header", + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-auth-date", + "in": "header", + "description": "The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true + }, + "x-conditional": true + }, + { + "name": "x-fapi-customer-ip-address", + "in": "header", + "description": "The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "schema": { + "type": "string" + } + }, + { + "name": "x-cds-client-headers", + "in": "header", + "description": "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true, + "x-cds-type": "Base64" + }, + "x-conditional": true, + "x-cds-type": "Base64" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-v": { + "description": "The [version](#response-headers) of the API endpoint that the data holder has responded with.", + "schema": { + "type": "string" + } + }, + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseBankingTransactionList" + } + } + } + }, + "400": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "404": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "406": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "422": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + } + }, + "x-scopes": [ + "bank:transactions:read" + ], + "x-version": "1" + } + }, + "/banking/accounts/{accountId}/transactions/{transactionId}": { + "get": { + "tags": [ + "Banking", + "Accounts" + ], + "summary": "Get Transaction Detail", + "description": "Obtain detailed information on a transaction for a specific account", + "operationId": "getTransactionDetail", + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "ID of the account to get transactions for. Must have previously been returned by one of the account list endpoints", + "required": true, + "schema": { + "type": "string", + "x-cds-type": "ASCIIString" + }, + "x-cds-type": "ASCIIString" + }, + { + "name": "transactionId", + "in": "path", + "description": "ID of the transaction obtained from a previous call to one of the other transaction endpoints", + "required": true, + "schema": { + "type": "string", + "x-cds-type": "ASCIIString" + }, + "x-cds-type": "ASCIIString" + }, + { + "name": "x-v", + "in": "header", + "description": "Version of the API endpoint requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "x-min-v", + "in": "header", + "description": "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-interaction-id", + "in": "header", + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-auth-date", + "in": "header", + "description": "The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true + }, + "x-conditional": true + }, + { + "name": "x-fapi-customer-ip-address", + "in": "header", + "description": "The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "schema": { + "type": "string" + } + }, + { + "name": "x-cds-client-headers", + "in": "header", + "description": "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true, + "x-cds-type": "Base64" + }, + "x-conditional": true, + "x-cds-type": "Base64" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-v": { + "description": "The [version](#response-headers) of the API endpoint that the data holder has responded with.", + "schema": { + "type": "string" + } + }, + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseBankingTransactionById" + } + } + } + }, + "400": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "404": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "406": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + } + }, + "x-scopes": [ + "bank:transactions:read" + ], + "x-version": "1" + } + }, + "/banking/accounts/{accountId}/direct-debits": { + "get": { + "tags": [ + "Banking", + "Direct Debits" + ], + "summary": "Get Direct Debits For Account", + "description": "Obtain direct debit authorisations for a specific account", + "operationId": "listDirectDebits", + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "ID of the account to get direct debit authorisations for. Must have previously been returned by one of the account list endpoints.", + "required": true, + "schema": { + "type": "string", + "x-cds-type": "ASCIIString" + }, + "x-cds-type": "ASCIIString" + }, + { + "name": "page", + "in": "query", + "description": "Page of results to request (standard pagination)", + "schema": { + "type": "integer", + "default": 1, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "page-size", + "in": "query", + "description": "Page size to request. Default is 25 (standard pagination)", + "schema": { + "type": "integer", + "default": 25, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "x-v", + "in": "header", + "description": "Version of the API endpoint requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "x-min-v", + "in": "header", + "description": "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-interaction-id", + "in": "header", + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-auth-date", + "in": "header", + "description": "The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true + }, + "x-conditional": true + }, + { + "name": "x-fapi-customer-ip-address", + "in": "header", + "description": "The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "schema": { + "type": "string" + } + }, + { + "name": "x-cds-client-headers", + "in": "header", + "description": "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true, + "x-cds-type": "Base64" + }, + "x-conditional": true, + "x-cds-type": "Base64" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-v": { + "description": "The [version](#response-headers) of the API endpoint that the data holder has responded with.", + "schema": { + "type": "string" + } + }, + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseBankingDirectDebitAuthorisationList" + } + } + } + }, + "400": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "404": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "406": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "422": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + } + }, + "x-scopes": [ + "bank:regular_payments:read" + ], + "x-version": "1" + } + }, + "/banking/accounts/direct-debits": { + "get": { + "tags": [ + "Banking", + "Direct Debits" + ], + "summary": "Get Bulk Direct Debits", + "description": "Obtain direct debit authorisations for multiple, filtered accounts\n\nObsolete versions: [v1](../../../../includes/obsolete/get-bulk-direct-debits-v1.html)", + "operationId": "listDirectDebitsBulk", + "parameters": [ + { + "name": "product-category", + "in": "query", + "description": "Used to filter results on the `productCategory` field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.", + "schema": { + "type": "string", + "enum": [ + "BUSINESS_LOANS", + "BUY_NOW_PAY_LATER", + "CRED_AND_CHRG_CARDS", + "LEASES", + "MARGIN_LOANS", + "OVERDRAFTS", + "PERS_LOANS", + "REGULATED_TRUST_ACCOUNTS", + "RESIDENTIAL_MORTGAGES", + "TERM_DEPOSITS", + "TRADE_FINANCE", + "TRANS_AND_SAVINGS_ACCOUNTS", + "TRAVEL_CARDS" + ] + } + }, + { + "name": "open-status", + "in": "query", + "description": "Used to filter results according to open/closed status. Values can be `OPEN`, `CLOSED` or `ALL`. If absent then `ALL` is assumed", + "schema": { + "type": "string", + "default": "ALL", + "enum": [ + "ALL", + "CLOSED", + "OPEN" + ] + } + }, + { + "name": "is-owned", + "in": "query", + "description": "Filters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts", + "schema": { + "type": "boolean", + "x-cds-type": "Boolean" + }, + "x-cds-type": "Boolean" + }, + { + "name": "page", + "in": "query", + "description": "Page of results to request (standard pagination)", + "schema": { + "type": "integer", + "default": 1, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "page-size", + "in": "query", + "description": "Page size to request. Default is 25 (standard pagination)", + "schema": { + "type": "integer", + "default": 25, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "x-v", + "in": "header", + "description": "Version of the API endpoint requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "x-min-v", + "in": "header", + "description": "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-interaction-id", + "in": "header", + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-auth-date", + "in": "header", + "description": "The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true + }, + "x-conditional": true + }, + { + "name": "x-fapi-customer-ip-address", + "in": "header", + "description": "The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "schema": { + "type": "string" + } + }, + { + "name": "x-cds-client-headers", + "in": "header", + "description": "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true, + "x-cds-type": "Base64" + }, + "x-conditional": true, + "x-cds-type": "Base64" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-v": { + "description": "The [version](#response-headers) of the API endpoint that the data holder has responded with.", + "schema": { + "type": "string" + } + }, + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseBankingDirectDebitAuthorisationList" + } + } + } + }, + "400": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "406": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "422": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + } + }, + "x-scopes": [ + "bank:regular_payments:read" + ], + "x-version": "2" + }, + "post": { + "tags": [ + "Banking", + "Direct Debits" + ], + "summary": "Get Direct Debits For Specific Accounts", + "description": "Obtain direct debit authorisations for a specified list of accounts", + "operationId": "listDirectDebitsSpecificAccounts", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "Page of results to request (standard pagination)", + "schema": { + "type": "integer", + "default": 1, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "page-size", + "in": "query", + "description": "Page size to request. Default is 25 (standard pagination)", + "schema": { + "type": "integer", + "default": 25, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "x-v", + "in": "header", + "description": "Version of the API endpoint requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "x-min-v", + "in": "header", + "description": "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-interaction-id", + "in": "header", + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-auth-date", + "in": "header", + "description": "The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true + }, + "x-conditional": true + }, + { + "name": "x-fapi-customer-ip-address", + "in": "header", + "description": "The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "schema": { + "type": "string" + } + }, + { + "name": "x-cds-client-headers", + "in": "header", + "description": "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true, + "x-cds-type": "Base64" + }, + "x-conditional": true, + "x-cds-type": "Base64" + } + ], + "requestBody": { + "description": "Array of specific accountIds to obtain authorisations for", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RequestAccountIds" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Success", + "headers": { + "x-v": { + "description": "The [version](#response-headers) of the API endpoint that the data holder has responded with.", + "schema": { + "type": "string" + } + }, + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseBankingDirectDebitAuthorisationList" + } + } + } + }, + "400": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "406": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "422": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + } + }, + "x-scopes": [ + "bank:regular_payments:read" + ], + "x-version": "1", + "x-codegen-request-body-name": "accountIds" + } + }, + "/banking/accounts/{accountId}/payments/scheduled": { + "get": { + "tags": [ + "Banking", + "Scheduled Payments" + ], + "summary": "Get Scheduled Payments for Account", + "description": "Obtain scheduled, outgoing payments for a specific account\n\nObsolete versions: [v1](../../../../includes/obsolete/get-scheduled-payments-for-account-v1.html)", + "operationId": "listScheduledPayments", + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "ID of the account to get scheduled payments for. Must have previously been returned by one of the account list endpoints. The account specified is the source account for the payment", + "required": true, + "schema": { + "type": "string", + "x-cds-type": "ASCIIString" + }, + "x-cds-type": "ASCIIString" + }, + { + "name": "page", + "in": "query", + "description": "Page of results to request (standard pagination)", + "schema": { + "type": "integer", + "default": 1, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "page-size", + "in": "query", + "description": "Page size to request. Default is 25 (standard pagination)", + "schema": { + "type": "integer", + "default": 25, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "x-v", + "in": "header", + "description": "Version of the API endpoint requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "x-min-v", + "in": "header", + "description": "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-interaction-id", + "in": "header", + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-auth-date", + "in": "header", + "description": "The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true + }, + "x-conditional": true + }, + { + "name": "x-fapi-customer-ip-address", + "in": "header", + "description": "The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "schema": { + "type": "string" + } + }, + { + "name": "x-cds-client-headers", + "in": "header", + "description": "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true, + "x-cds-type": "Base64" + }, + "x-conditional": true, + "x-cds-type": "Base64" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-v": { + "description": "The [version](#response-headers) of the API endpoint that the data holder has responded with.", + "schema": { + "type": "string" + } + }, + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseBankingScheduledPaymentsListV2" + } + } + } + }, + "400": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "404": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "406": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "422": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + } + }, + "x-scopes": [ + "bank:regular_payments:read" + ], + "x-version": "2" + } + }, + "/banking/payments/scheduled": { + "get": { + "tags": [ + "Banking", + "Scheduled Payments" + ], + "summary": "Get Scheduled Payments Bulk", + "description": "Obtain scheduled payments for multiple, filtered accounts that are the source of funds for the payments\n\nObsolete versions: [v1](../../../../includes/obsolete/get-scheduled-payments-bulk-v1.html), [v2](../../../../includes/obsolete/get-scheduled-payments-bulk-v2.html)", + "operationId": "listScheduledPaymentsBulk", + "parameters": [ + { + "name": "product-category", + "in": "query", + "description": "Used to filter results on the `productCategory` field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.", + "schema": { + "type": "string", + "enum": [ + "BUSINESS_LOANS", + "BUY_NOW_PAY_LATER", + "CRED_AND_CHRG_CARDS", + "LEASES", + "MARGIN_LOANS", + "OVERDRAFTS", + "PERS_LOANS", + "REGULATED_TRUST_ACCOUNTS", + "RESIDENTIAL_MORTGAGES", + "TERM_DEPOSITS", + "TRADE_FINANCE", + "TRANS_AND_SAVINGS_ACCOUNTS", + "TRAVEL_CARDS" + ] + } + }, + { + "name": "open-status", + "in": "query", + "description": "Used to filter results according to open/closed status. Values can be `OPEN`, `CLOSED` or `ALL`. If absent then `ALL` is assumed", + "schema": { + "type": "string", + "default": "ALL", + "enum": [ + "ALL", + "CLOSED", + "OPEN" + ] + } + }, + { + "name": "is-owned", + "in": "query", + "description": "Filters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts", + "schema": { + "type": "boolean", + "x-cds-type": "Boolean" + }, + "x-cds-type": "Boolean" + }, + { + "name": "page", + "in": "query", + "description": "Page of results to request (standard pagination)", + "schema": { + "type": "integer", + "default": 1, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "page-size", + "in": "query", + "description": "Page size to request. Default is 25 (standard pagination)", + "schema": { + "type": "integer", + "default": 25, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "x-v", + "in": "header", + "description": "Version of the API endpoint requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "x-min-v", + "in": "header", + "description": "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-interaction-id", + "in": "header", + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-auth-date", + "in": "header", + "description": "The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true + }, + "x-conditional": true + }, + { + "name": "x-fapi-customer-ip-address", + "in": "header", + "description": "The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "schema": { + "type": "string" + } + }, + { + "name": "x-cds-client-headers", + "in": "header", + "description": "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true, + "x-cds-type": "Base64" + }, + "x-conditional": true, + "x-cds-type": "Base64" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-v": { + "description": "The [version](#response-headers) of the API endpoint that the data holder has responded with.", + "schema": { + "type": "string" + } + }, + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseBankingScheduledPaymentsListV2" + } + } + } + }, + "400": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "406": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "422": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + } + }, + "x-scopes": [ + "bank:regular_payments:read" + ], + "x-version": "3" + }, + "post": { + "tags": [ + "Banking", + "Scheduled Payments" + ], + "summary": "Get Scheduled Payments For Specific Accounts", + "description": "Obtain scheduled payments for a specified list of accounts\n\nObsolete versions: [v1](../../../../includes/obsolete/get-scheduled-payments-for-specific-accounts-v1.html)", + "operationId": "listScheduledPaymentsSpecificAccounts", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "Page of results to request (standard pagination)", + "schema": { + "type": "integer", + "default": 1, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "page-size", + "in": "query", + "description": "Page size to request. Default is 25 (standard pagination)", + "schema": { + "type": "integer", + "default": 25, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "x-v", + "in": "header", + "description": "Version of the API endpoint requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "x-min-v", + "in": "header", + "description": "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-interaction-id", + "in": "header", + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-auth-date", + "in": "header", + "description": "The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true + }, + "x-conditional": true + }, + { + "name": "x-fapi-customer-ip-address", + "in": "header", + "description": "The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "schema": { + "type": "string" + } + }, + { + "name": "x-cds-client-headers", + "in": "header", + "description": "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true, + "x-cds-type": "Base64" + }, + "x-conditional": true, + "x-cds-type": "Base64" + } + ], + "requestBody": { + "description": "Array of specific accountIds to obtain scheduled payments for. The accounts specified are the source of funds for the payments returned", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RequestAccountIds" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Success", + "headers": { + "x-v": { + "description": "The [version](#response-headers) of the API endpoint that the data holder has responded with.", + "schema": { + "type": "string" + } + }, + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseBankingScheduledPaymentsListV2" + } + } + } + }, + "400": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "406": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "422": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + } + }, + "x-scopes": [ + "bank:regular_payments:read" + ], + "x-version": "2", + "x-codegen-request-body-name": "accountIds" + } + }, + "/banking/payees": { + "get": { + "tags": [ + "Banking", + "Payees" + ], + "summary": "Get Payees", + "description": "Obtain a list of pre-registered payees.\n\nObsolete versions: [v1](../../../../includes/obsolete/get-payees-v1.html)", + "operationId": "listPayees", + "parameters": [ + { + "name": "type", + "in": "query", + "description": "Filter on the payee type field. In addition to normal type field values, ALL can be specified to retrieve all payees. If absent the assumed value is ALL", + "schema": { + "type": "string", + "default": "ALL", + "enum": [ + "ALL", + "BILLER", + "DIGITAL_WALLET", + "DOMESTIC", + "INTERNATIONAL" + ] + } + }, + { + "name": "page", + "in": "query", + "description": "Page of results to request (standard pagination)", + "schema": { + "type": "integer", + "default": 1, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "page-size", + "in": "query", + "description": "Page size to request. Default is 25 (standard pagination)", + "schema": { + "type": "integer", + "default": 25, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "x-v", + "in": "header", + "description": "Version of the API endpoint requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "x-min-v", + "in": "header", + "description": "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-interaction-id", + "in": "header", + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-auth-date", + "in": "header", + "description": "The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true + }, + "x-conditional": true + }, + { + "name": "x-fapi-customer-ip-address", + "in": "header", + "description": "The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "schema": { + "type": "string" + } + }, + { + "name": "x-cds-client-headers", + "in": "header", + "description": "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true, + "x-cds-type": "Base64" + }, + "x-conditional": true, + "x-cds-type": "Base64" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-v": { + "description": "The [version](#response-headers) of the API endpoint that the data holder has responded with.", + "schema": { + "type": "string" + } + }, + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseBankingPayeeListV2" + } + } + } + }, + "400": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "406": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "422": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + } + }, + "x-scopes": [ + "bank:payees:read" + ], + "x-version": "2" + } + }, + "/banking/payees/{payeeId}": { + "get": { + "tags": [ + "Banking", + "Payees" + ], + "summary": "Get Payee Detail", + "description": "Obtain detailed information on a single payee.\n\nNote that the payee sub-structure should be selected to represent the payment destination only rather than any known characteristics of the payment recipient.\n\nObsolete versions: [v1](../../../../includes/obsolete/get-payee-detail-v1.html)", + "operationId": "getPayeeDetail", + "parameters": [ + { + "name": "payeeId", + "in": "path", + "description": "The ID used to locate the details of a particular payee", + "required": true, + "schema": { + "type": "string", + "x-cds-type": "ASCIIString" + }, + "x-cds-type": "ASCIIString" + }, + { + "name": "x-v", + "in": "header", + "description": "Version of the API endpoint requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "x-min-v", + "in": "header", + "description": "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-interaction-id", + "in": "header", + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + }, + { + "name": "x-fapi-auth-date", + "in": "header", + "description": "The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true + }, + "x-conditional": true + }, + { + "name": "x-fapi-customer-ip-address", + "in": "header", + "description": "The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "schema": { + "type": "string" + } + }, + { + "name": "x-cds-client-headers", + "in": "header", + "description": "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true, + "x-cds-type": "Base64" + }, + "x-conditional": true, + "x-cds-type": "Base64" + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-v": { + "description": "The [version](#response-headers) of the API endpoint that the data holder has responded with.", + "schema": { + "type": "string" + } + }, + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseBankingPayeeByIdV2" + } + } + } + }, + "400": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "404": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "406": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "422": { + "description": "The following error codes MUST be supported:
", + "headers": { + "x-fapi-interaction-id": { + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + } + }, + "x-scopes": [ + "bank:payees:read" + ], + "x-version": "2" + } + }, + "/banking/products": { + "get": { + "tags": [ + "Banking", + "Products" + ], + "summary": "Get Products", + "description": "Obtain a list of products that are currently openly offered to the market\n\nNote that the results returned by this endpoint are expected to be ordered in descending order according to `lastUpdated`.\n\n### Conventions\nIn the product reference payloads there are a number of recurring conventions that are explained here, in one place.\n\n#### Arrays Of Features\n\nIn the product detail payload there are a number of arrays articulating generic features, constraints, prices, etc. The intent of these arrays is as follows:\n\n- Each element in an array has the same structure so that clients can reliably interpret the payloads\n- Each element as a type element that is an enumeration of the specific aspect of a product being described, such as types of fees.\n- Each element has a field name [additionalValue](#productfeaturetypedoc). This is a generic field with contents that will vary based on the type of object being described. The contents of this field for the `ADDITIONAL_CARDS` feature is the number of cards allowed while the contents of this field for the `MAX_LIMIT` constraint would be the maximum credit limit allowed for the product.\n- An element in these arrays of the same type may appear more than once. For instance, a product may offer two separate loyalty programs that the customer can select from. A fixed term mortgage may have different rates for different term lengths.\n- An element in these arrays may contain an `additionalInfo` and `additionalInfoUri` field. The `additionalInfo` field is used to provide displayable text clarifying the purpose of the element in some way when the product is presented to a customer. The `additionalInfoUri` provides a link to externally hosted information specifically relevant to that feature of the product.\n- Depending on the type of data being represented there may be additional specific fields.\n\n#### URIs To More Information\n\nAs the complexities and nuances of a financial product can not easily be fully expressed in a data structure without a high degree of complexity it is necessary to provide additional reference information that a potential customer can access so that they are fully informed of the features and implications of the product. The payloads for product reference therefore contain numerous fields that are provided to allow the product holder to describe the product more fully using a web page hosted on their online channels.\n\nThese URIs do not need to all link to different pages. If desired, they can all link to a single hosted page and use difference HTML anchors to focus on a specific topic such as eligibility or fees.\n\n#### Linkage To Accounts\nFrom the moment that a customer applies for a product and an account is created the account and the product that spawned it will diverge. Rates and features of the product may change and a discount may be negotiated for the account.\n\nFor this reason, while `productCategory` is a common field between accounts and products, there is no specific ID that can be used to link an account to a product within the regime.\n\nSimilarly, many of the fields and objects in the product payload will appear in the account detail payload but the structures and semantics are not identical as one refers to a product that can potentially be originated and one refers to an account that actually has been instantiated and created along with the associated decisions inherent in that process.\n\n#### Dates\nIt is expected that data consumers needing this data will call relatively frequently to ensure the data they have is representative of the current offering from a bank. To minimise the volume and frequency of these calls the ability to set a `lastUpdated` field with the date and time of the last update to this product is included. A call for a list of products can then be filtered to only return products that have been updated since the last time that data was obtained using the `updated-since` query parameter.\n\nIn addition, the concept of effective date and time has also been included. This allows for a product to be marked for obsolescence, or introduction, from a certain time without the need for an update to show that a product has been changed. The inclusion of these dates also removes the need to represent deleted products in the payload. Products that are no long offered can be marked not effective for a few weeks before they are then removed from the product set as an option entirely.\n\nObsolete versions: [v1](../../../../includes/obsolete/get-products-v1.html), [v2](../../../../includes/obsolete/get-products-v2.html), [v3](../../../../includes/obsolete/get-products-v3.html)", + "operationId": "listProducts", + "parameters": [ + { + "name": "effective", + "in": "query", + "description": "Allows for the filtering of products based on whether the current time is within the period of time defined as effective by the effectiveFrom and effectiveTo fields. Valid values are `CURRENT`, `FUTURE` and `ALL`. If absent defaults to `CURRENT`", + "schema": { + "type": "string", + "default": "CURRENT", + "enum": [ + "ALL", + "CURRENT", + "FUTURE" + ] + } + }, + { + "name": "updated-since", + "in": "query", + "description": "Only include products that have been updated after the specified date and time. If absent defaults to include all products", + "schema": { + "type": "string", + "x-cds-type": "DateTimeString" + }, + "x-cds-type": "DateTimeString" + }, + { + "name": "brand", + "in": "query", + "description": "Filter results based on a specific brand", + "schema": { + "type": "string" + } + }, + { + "name": "product-category", + "in": "query", + "description": "Used to filter results on the `productCategory` field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.", + "schema": { + "type": "string", + "enum": [ + "BUSINESS_LOANS", + "BUY_NOW_PAY_LATER", + "CRED_AND_CHRG_CARDS", + "LEASES", + "MARGIN_LOANS", + "OVERDRAFTS", + "PERS_LOANS", + "REGULATED_TRUST_ACCOUNTS", + "RESIDENTIAL_MORTGAGES", + "TERM_DEPOSITS", + "TRADE_FINANCE", + "TRANS_AND_SAVINGS_ACCOUNTS", + "TRAVEL_CARDS" + ] + } + }, + { + "name": "page", + "in": "query", + "description": "Page of results to request (standard pagination)", + "schema": { + "type": "integer", + "default": 1, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "page-size", + "in": "query", + "description": "Page size to request. Default is 25 (standard pagination)", + "schema": { + "type": "integer", + "default": 25, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + { + "name": "x-v", + "in": "header", + "description": "Version of the API endpoint requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "x-min-v", + "in": "header", + "description": "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-v": { + "description": "The [version](#response-headers) of the API endpoint that the data holder has responded with.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseBankingProductListV3" + } + } + } + }, + "400": { + "description": "The following error codes MUST be supported:
", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "406": { + "description": "The following error codes MUST be supported:
", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "422": { + "description": "The following error codes MUST be supported:
", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + } + }, + "x-version": "4" + } + }, + "/banking/products/{productId}": { + "get": { + "tags": [ + "Banking", + "Products" + ], + "summary": "Get Product Detail", + "description": "Obtain detailed information on a single product offered openly to the market.\n\nObsolete versions: [v1](../../../../includes/obsolete/get-product-detail-v1.html), [v2](../../../../includes/obsolete/get-product-detail-v2.html), [v3](../../../../includes/obsolete/get-product-detail-v3.html), [v4](../../../../includes/obsolete/get-product-detail-v4.html)", + "operationId": "getProductDetail", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "ID of the specific product requested", + "required": true, + "schema": { + "type": "string", + "x-cds-type": "ASCIIString" + }, + "x-cds-type": "ASCIIString" + }, + { + "name": "x-v", + "in": "header", + "description": "Version of the API endpoint requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "x-min-v", + "in": "header", + "description": "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "headers": { + "x-v": { + "description": "The [version](#response-headers) of the API endpoint that the data holder has responded with.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseBankingProductByIdV5" + } + } + } + }, + "400": { + "description": "The following error codes MUST be supported:
", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "404": { + "description": "The following error codes MUST be supported:
", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + }, + "406": { + "description": "The following error codes MUST be supported:
", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseErrorListV2" + } + } + } + } + }, + "x-version": "5" + } + } + }, + "components": { + "schemas": { + "RequestAccountIds": { + "required": [ + "data" + ], + "type": "object", + "properties": { + "data": { + "required": [ + "accountIds" + ], + "type": "object", + "properties": { + "accountIds": { + "type": "array", + "items": { + "type": "string", + "description": "Array of specific accountIds to obtain authorisations for", + "x-cds-type": "ASCIIString" + } + } + } + }, + "meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "ResponseBankingProductListV3": { + "required": [ + "data", + "links", + "meta" + ], + "type": "object", + "properties": { + "data": { + "required": [ + "products" + ], + "type": "object", + "properties": { + "products": { + "type": "array", + "description": "The list of products returned. If the filter results in an empty set then this array may have no records", + "items": { + "$ref": "#/components/schemas/BankingProductV5" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/LinksPaginated" + }, + "meta": { + "$ref": "#/components/schemas/MetaPaginated" + } + } + }, + "BankingProductV5": { + "required": [ + "brand", + "description", + "isTailored", + "lastUpdated", + "name", + "productCategory", + "productId" + ], + "type": "object", + "properties": { + "productId": { + "type": "string", + "description": "A data holder specific unique identifier for this product. This identifier must be unique to a product but does not otherwise need to adhere to ID permanence guidelines.", + "x-cds-type": "ASCIIString" + }, + "effectiveFrom": { + "type": "string", + "description": "The date and time from which this product is effective (ie. is available for origination). Used to enable the articulation of products to the regime before they are available for customers to originate", + "x-cds-type": "DateTimeString" + }, + "effectiveTo": { + "type": "string", + "description": "The date and time at which this product will be retired and will no longer be offered. Used to enable the managed deprecation of products", + "x-cds-type": "DateTimeString" + }, + "lastUpdated": { + "type": "string", + "description": "The last date and time that the information for this product was changed (or the creation date for the product if it has never been altered)", + "x-cds-type": "DateTimeString" + }, + "productCategory": { + "$ref": "#/components/schemas/BankingProductCategoryV2" + }, + "name": { + "type": "string", + "description": "The display name of the product" + }, + "description": { + "type": "string", + "description": "A description of the product" + }, + "brand": { + "type": "string", + "description": "A label of the brand for the product. Able to be used for filtering. For data holders with single brands this value is still required" + }, + "brandName": { + "type": "string", + "description": "An optional display name of the brand" + }, + "applicationUri": { + "type": "string", + "description": "A link to an application web page where this product can be applied for.", + "x-cds-type": "URIString" + }, + "isTailored": { + "type": "boolean", + "description": "Indicates whether the product is specifically tailored to a circumstance. In this case fees and prices are significantly negotiated depending on context. While all products are open to a degree of tailoring this flag indicates that tailoring is expected and thus that the provision of specific fees and rates is not applicable", + "x-cds-type": "Boolean" + }, + "additionalInformation": { + "$ref": "#/components/schemas/BankingProductAdditionalInformationV2" + }, + "cardOption": { + "$ref": "#/components/schemas/BankingProductCardOption" + } + } + }, + "BankingProductCardOption": { + "type": "object", + "description": "Information about the type of card available with the account", + "required": [ + "cardScheme", + "cardType" + ], + "properties": { + "cardScheme": { + "type": "string", + "description": "Card scheme available with the account", + "enum": [ + "AMEX", + "DINERS", + "EFTPOS", + "MASTERCARD", + "VISA", + "OTHER" + ] + }, + "cardType": { + "type": "string", + "description": "Card type available with the account", + "enum": [ + "CHARGE", + "CREDIT", + "DEBIT" + ] + }, + "cardImages": { + "type": "array", + "description": "An array of card art images", + "items": { + "$ref": "#/components/schemas/BankingProductCardOption_cardImages" + } + } + } + }, + "BankingProductCardOption_cardImages": { + "required": [ + "imageUri" + ], + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "Display label for the specific image" + }, + "imageUri": { + "type": "string", + "description": "URI reference to a PNG, JPG or GIF image with proportions defined by ISO 7810 ID-1 and width no greater than 512 pixels. The URI reference may be a link or url-encoded data URI according to **[[RFC2397]](#nref-RFC2397)**", + "x-cds-type": "URIString" + } + } + }, + "BankingProductAdditionalInformationV2": { + "type": "object", + "properties": { + "overviewUri": { + "type": "string", + "description": "General overview of the product. Mandatory if `additionalOverviewUris` includes one or more supporting documents.", + "x-cds-type": "URIString" + }, + "termsUri": { + "type": "string", + "description": "Terms and conditions for the product. Mandatory if `additionalTermsUris` includes one or more supporting documents.", + "x-cds-type": "URIString" + }, + "eligibilityUri": { + "type": "string", + "description": "Eligibility rules and criteria for the product. Mandatory if `additionalEligibilityUris` includes one or more supporting documents.", + "x-cds-type": "URIString" + }, + "feesAndPricingUri": { + "type": "string", + "description": "Description of fees, pricing, discounts, exemptions and bonuses for the product. Mandatory if `additionalFeesAndPricingUris` includes one or more supporting documents.", + "x-cds-type": "URIString" + }, + "bundleUri": { + "type": "string", + "description": "Description of a bundle that this product can be part of. Mandatory if `additionalBundleUris` includes one or more supporting documents.", + "x-cds-type": "URIString" + }, + "additionalOverviewUris": { + "type": "array", + "description": "An array of additional general overviews for the product or features of the product, if applicable. To be treated as secondary documents to the `overviewUri`. Only to be used if there is a primary `overviewUri`.", + "items": { + "$ref": "#/components/schemas/BankingProductAdditionalInformationV2_additionalInformationUris" + } + }, + "additionalTermsUris": { + "type": "array", + "description": "An array of additional terms and conditions for the product, if applicable. To be treated as secondary documents to the `termsUri`. Only to be used if there is a primary `termsUri`.", + "items": { + "$ref": "#/components/schemas/BankingProductAdditionalInformationV2_additionalInformationUris" + } + }, + "additionalEligibilityUris": { + "type": "array", + "description": "An array of additional eligibility rules and criteria for the product, if applicable. To be treated as secondary documents to the `eligibilityUri`. Only to be used if there is a primary `eligibilityUri`.", + "items": { + "$ref": "#/components/schemas/BankingProductAdditionalInformationV2_additionalInformationUris" + } + }, + "additionalFeesAndPricingUris": { + "type": "array", + "description": "An array of additional fees, pricing, discounts, exemptions and bonuses for the product, if applicable. To be treated as secondary documents to the `feesAndPricingUri`. Only to be used if there is a primary `feesAndPricingUri`.", + "items": { + "$ref": "#/components/schemas/BankingProductAdditionalInformationV2_additionalInformationUris" + } + }, + "additionalBundleUris": { + "type": "array", + "description": "An array of additional bundles for the product, if applicable. To be treated as secondary documents to the `bundleUri`. Only to be used if there is a primary `bundleUri`.", + "items": { + "$ref": "#/components/schemas/BankingProductAdditionalInformationV2_additionalInformationUris" + } + } + }, + "description": "Object that contains links to additional information on specific topics", + "x-conditional": [ + "overviewUri", + "termsUri", + "eligibilityUri", + "feesAndPricingUri", + "bundleUri" + ] + }, + "BankingProductAdditionalInformationV2_additionalInformationUris": { + "required": [ + "additionalInfoUri" + ], + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Display text providing more information about the document URI" + }, + "additionalInfoUri": { + "type": "string", + "description": "The URI describing the additional information", + "x-cds-type": "URIString" + } + } + }, + "ResponseBankingProductByIdV5": { + "required": [ + "data", + "links" + ], + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/BankingProductDetailV5" + }, + "links": { + "$ref": "#/components/schemas/Links" + }, + "meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "BankingProductDetailV5": { + "allOf": [ + { + "$ref": "#/components/schemas/BankingProductV5" + }, + { + "type": "object", + "properties": { + "bundles": { + "type": "array", + "description": "An array of bundles that this product participates in. Each bundle is described by free form information but also by a list of product IDs of the other products that are included in the bundle. It is assumed that the current product is included in the bundle also", + "items": { + "$ref": "#/components/schemas/BankingProductBundle" + } + }, + "features": { + "type": "array", + "description": "Array of features and limitations of the product", + "items": { + "$ref": "#/components/schemas/BankingProductFeatureV3" + } + }, + "constraints": { + "type": "array", + "description": "Constraints on the application for the product such as minimum balances or limit thresholds", + "items": { + "$ref": "#/components/schemas/BankingProductConstraintV2" + } + }, + "eligibility": { + "type": "array", + "description": "Eligibility criteria for the product", + "items": { + "$ref": "#/components/schemas/BankingProductEligibility" + } + }, + "fees": { + "type": "array", + "description": "Fees applicable to the product", + "items": { + "$ref": "#/components/schemas/BankingProductFeeV2" + } + }, + "depositRates": { + "type": "array", + "description": "Interest rates available for deposits", + "items": { + "$ref": "#/components/schemas/BankingProductDepositRateV2" + } + }, + "lendingRates": { + "type": "array", + "description": "Interest rates charged against lending balances", + "items": { + "$ref": "#/components/schemas/BankingProductLendingRateV3" + } + }, + "instalments": { + "description": "Details of instalment features on the account", + "$ref": "#/components/schemas/BankingProductInstalments" + } + } + } + ] + }, + "BankingProductBundle": { + "required": [ + "description", + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the bundle" + }, + "description": { + "type": "string", + "description": "Description of the bundle" + }, + "additionalInfo": { + "type": "string", + "description": "Display text providing more information on the bundle" + }, + "additionalInfoUri": { + "type": "string", + "description": "Link to a web page with more information on the bundle criteria and benefits", + "x-cds-type": "URIString" + }, + "productIds": { + "type": "array", + "description": "Array of product IDs for products included in the bundle that are available via the product endpoints. Note that this array is not intended to represent a comprehensive model of the products included in the bundle and some products available for the bundle may not be available via the product reference endpoints", + "items": { + "type": "string", + "x-cds-type": "ASCIIString" + } + } + } + }, + "BankingProductFeatureV3": { + "required": [ + "featureType" + ], + "type": "object", + "description": "Array of features and limitations of the product", + "properties": { + "featureType": { + "type": "string", + "description": "The type of feature described. For further details, refer to [Product Feature Types](#tocSproductfeaturetypedoc)", + "enum": [ + "ADDITIONAL_CARDS", + "BALANCE_TRANSFERS", + "BILL_PAYMENT", + "BONUS_REWARDS", + "CARD_ACCESS", + "CASHBACK_OFFER", + "COMPLEMENTARY_PRODUCT_DISCOUNTS", + "EXTRA_DOWN_PAYMENT", + "DIGITAL_BANKING", + "DIGITAL_WALLET", + "DONATE_INTEREST", + "EXTRA_REPAYMENTS", + "FRAUD_PROTECTION", + "FREE_TXNS", + "FREE_TXNS_ALLOWANCE", + "FUNDS_AVAILABLE_AFTER", + "GUARANTOR", + "INSTALMENT_PLAN", + "INSURANCE", + "INTEREST_FREE", + "INTEREST_FREE_TRANSFERS", + "LOYALTY_PROGRAM", + "MAX_BALANCE", + "MAX_LIMIT", + "MAX_TXNS", + "MIN_BALANCE", + "MIN_LIMIT", + "NOTIFICATIONS", + "NPP_ENABLED", + "NPP_PAYID", + "OFFSET", + "OTHER", + "OVERDRAFT", + "REDRAW", + "RELATIONSHIP_MANAGEMENT", + "UNLIMITED_TXNS" + ] + }, + "additionalValue": { + "type": "string", + "description": "Generic field containing additional information relevant to the [featureType](#tocSproductfeaturetypedoc) specified. Whether mandatory or not is dependent on the value of the [featureType.](#tocSproductfeaturetypedoc)" + }, + "additionalInfo": { + "type": "string", + "description": "Display text providing more information on the feature. Mandatory if the [feature type](#tocSproductfeaturetypedoc) is set to `OTHER`" + }, + "additionalInfoUri": { + "type": "string", + "description": "Link to a web page with more information on this feature", + "x-cds-type": "URIString" + } + }, + "x-conditional": [ + "additionalValue", + "additionalInfo" + ] + }, + "BankingProductConstraintV2": { + "required": [ + "constraintType" + ], + "type": "object", + "properties": { + "constraintType": { + "type": "string", + "description": "The type of constraint described. For further details, refer to [Product Constraint Types](#tocSproductconstrainttypedoc)", + "enum": [ + "MAX_BALANCE", + "MAX_LIMIT", + "MIN_BALANCE", + "MIN_LIMIT", + "OPENING_BALANCE", + "OTHER" + ] + }, + "additionalValue": { + "type": "string", + "description": "Generic field containing additional information relevant to the [constraintType](#tocSproductconstrainttypedoc) specified. Whether mandatory or not is dependent on the value of [constraintType](#tocSproductconstrainttypedoc)" + }, + "additionalInfo": { + "type": "string", + "description": "Display text providing more information on the constraint. Mandatory if the [constraint type](#tocSproductconstrainttypedoc) is set to `OTHER`" + }, + "additionalInfoUri": { + "type": "string", + "description": "Link to a web page with more information on the constraint", + "x-cds-type": "URIString" + } + }, + "x-conditional": [ + "additionalValue", + "additionalInfo" + ] + }, + "BankingProductEligibility": { + "required": [ + "eligibilityType" + ], + "type": "object", + "properties": { + "eligibilityType": { + "type": "string", + "description": "The type of eligibility criteria described. For further details, refer to [Product Eligibility Types](#tocSproducteligibilitytypedoc)", + "enum": [ + "BUSINESS", + "EMPLOYMENT_STATUS", + "MAX_AGE", + "MIN_AGE", + "MIN_INCOME", + "MIN_TURNOVER", + "NATURAL_PERSON", + "OTHER", + "PENSION_RECIPIENT", + "RESIDENCY_STATUS", + "STAFF", + "STUDENT" + ] + }, + "additionalValue": { + "type": "string", + "description": "Generic field containing additional information relevant to the [eligibilityType](#tocSproducteligibilitytypedoc) specified. Whether mandatory or not is dependent on the value of [eligibilityType](#tocSproducteligibilitytypedoc)" + }, + "additionalInfo": { + "type": "string", + "description": "Display text providing more information on the [eligibility](#tocSproducteligibilitytypedoc) criteria. Mandatory if the field is set to `OTHER`" + }, + "additionalInfoUri": { + "type": "string", + "description": "Link to a web page with more information on this eligibility criteria", + "x-cds-type": "URIString" + } + }, + "x-conditional": [ + "additionalValue", + "additionalInfo" + ] + }, + "BankingProductFeeV2": { + "required": [ + "name", + "feeCategory", + "feeType", + "feeMethodUType" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the fee" + }, + "feeCategory": { + "type": "string", + "description": "The category of fee, used to group `feeType` values. For further details, refer to [Product Fee Categories](#tocSproductfeecategorydoc).", + "enum": [ + "APPLICATION", + "ATM", + "BRANCH", + "BUY_NOW_PAY_LATER", + "CARD", + "CHEQUE", + "CLOSURE", + "CORRESPONDENCE", + "FOREIGN_EXCHANGE", + "OTHER", + "POS", + "SERVICE", + "TELEGRAPHIC_TRANSFER", + "TELEPHONE_BANKING", + "TERMS_CONDITIONS", + "THIRD_PARTY", + "TRANSACTION" + ], + "example": "CARD" + }, + "feeType": { + "type": "string", + "description": "The type of fee. For further details, refer to [Product Fee Types](#tocSproductfeetypedoc).", + "enum": [ + "CASH_ADVANCE", + "DEPOSIT", + "DISHONOUR", + "ENQUIRY", + "EVENT", + "EXIT", + "OTHER", + "PAYMENT", + "PAYMENT_LATE", + "PERIODIC", + "PURCHASE", + "REPLACEMENT", + "TRANSACTION", + "UPFRONT", + "UPFRONT_PER_PLAN", + "VARIATION", + "WITHDRAWAL" + ], + "example": "CASH_ADVANCE" + }, + "feeMethodUType": { + "type": "string", + "description": "The fee charge method", + "enum": [ + "fixedAmount", + "rateBased", + "variable" + ] + }, + "fixedAmount": { + "description": "Present if `feeMethodUType` is set to `fixedAmount`. Where the fee is a specific amount", + "$ref": "#/components/schemas/BankingFeeAmount" + }, + "rateBased": { + "description": "Present if `feeMethodUType` is set to `rateBased`. Where the fee is based on a type of rate", + "$ref": "#/components/schemas/BankingFeeRate" + }, + "variable": { + "description": "Present if `feeMethodUType` is set to `variable`. Where the amount or rate may not be known until the fee is incurred", + "$ref": "#/components/schemas/BankingFeeRange" + }, + "feeCap": { + "type": "string", + "description": "The cap amount if multiple occurrences of the fee are capped to a limit", + "x-cds-type": "AmountString" + }, + "feeCapPeriod": { + "type": "string", + "description": "Specifies a duration over which multiple occurrences of the fee will be capped. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "currency": { + "type": "string", + "description": "The currency the fee will be charged in. Assumes `AUD` if absent", + "x-cds-type": "CurrencyString" + }, + "additionalValue": { + "type": "string", + "description": "Generic field containing additional information relevant to the [feeType](#tocSproductfeetypedoc) specified. Whether mandatory or not is dependent on the value of [feeType](#tocSproductfeetypedoc)" + }, + "additionalInfo": { + "type": "string", + "description": "Display text providing more information on the fee" + }, + "additionalInfoUri": { + "type": "string", + "description": "Link to a web page with more information on this fee", + "x-cds-type": "URIString" + }, + "discounts": { + "type": "array", + "description": "An optional list of discounts to this fee that may be available", + "items": { + "$ref": "#/components/schemas/BankingProductDiscount" + } + } + }, + "x-conditional": [ + "fixedAmount", + "rateBased", + "variable", + "additionalValue", + "additionalInfo" + ] + }, + "BankingFeeAmount": { + "type": "object", + "required": [ + "amount" + ], + "properties": { + "amount": { + "type": "string", + "description": "The specific amount charged for the fee each time it is incurred", + "x-cds-type": "AmountString" + } + } + }, + "BankingFeeRate": { + "type": "object", + "properties": { + "balanceRate": { + "type": "string", + "description": "A fee rate calculated based on a proportion of the balance. One of `balanceRate`, `transactionRate` and `accruedRate` is mandatory", + "x-cds-type": "RateString" + }, + "transactionRate": { + "type": "string", + "description": "A fee rate calculated based on a proportion of a transaction. One of `balanceRate`, `transactionRate` and `accruedRate` is mandatory", + "x-cds-type": "RateString" + }, + "accruedRate": { + "type": "string", + "description": "A fee rate calculated based on a proportion of the calculated interest accrued on the account. One of `balanceRate`, `transactionRate` and `accruedRate` is mandatory", + "x-cds-type": "RateString" + }, + "accrualFrequency": { + "type": "string", + "description": "The indicative frequency with which the fee is calculated on the account. Only applies if `balanceRate` or `accruedRate` is also present. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "amountRange": { + "$ref": "#/components/schemas/BankingFeeRange" + } + }, + "x-conditional": [ + "balanceRate", + "transactionRate", + "accruedRate" + ] + }, + "BankingFeeRange": { + "type": "object", + "description": "A minimum or maximum fee amount where a specific fixed amount is not known until the fee is incurred", + "properties": { + "feeMinimum": { + "type": "string", + "description": "The minimum fee that will be charged per occurrence", + "x-cds-type": "AmountString" + }, + "feeMaximum": { + "type": "string", + "description": "The maximum fee that will be charged per occurrence", + "x-cds-type": "AmountString" + } + } + }, + "BankingProductDiscount": { + "required": [ + "description", + "discountType" + ], + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Description of the discount" + }, + "discountType": { + "type": "string", + "description": "The type of discount. For further details, refer to [Product Discount Types](#tocSproductdiscounttypedoc)", + "enum": [ + "BALANCE", + "DEPOSITS", + "ELIGIBILITY_ONLY", + "FEE_CAP", + "PAYMENTS" + ] + }, + "amount": { + "type": "string", + "description": "Dollar value of the discount. One of `amount`, `balanceRate`, `transactionRate`, `accruedRate` and `feeRate` is mandatory.", + "x-cds-type": "AmountString" + }, + "balanceRate": { + "type": "string", + "description": "A discount rate calculated based on a proportion of the balance. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of `amount`, `balanceRate`, `transactionRate`, `accruedRate` and `feeRate` is mandatory. Unless noted in `additionalInfo`, assumes the application and calculation frequency are the same as the corresponding fee", + "x-cds-type": "RateString" + }, + "transactionRate": { + "type": "string", + "description": "A discount rate calculated based on a proportion of a transaction. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of `amount`, `balanceRate`, `transactionRate`, `accruedRate` and `feeRate` is mandatory.", + "x-cds-type": "RateString" + }, + "accruedRate": { + "type": "string", + "description": "A discount rate calculated based on a proportion of the calculated interest accrued on the account. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of `amount`, `balanceRate`, `transactionRate`, `accruedRate` and `feeRate` is mandatory. Unless noted in `additionalInfo`, assumes the application and calculation frequency are the same as the corresponding fee", + "x-cds-type": "RateString" + }, + "feeRate": { + "type": "string", + "description": "A discount rate calculated based on a proportion of the fee to which this discount is attached. Note that the currency of the fee discount is expected to be the same as the currency of the fee itself. One of `amount`, `balanceRate`, `transactionRate`, `accruedRate` and `feeRate` is mandatory. Unless noted in `additionalInfo`, assumes the application and calculation frequency are the same as the corresponding fee", + "x-cds-type": "RateString" + }, + "additionalValue": { + "type": "string", + "description": "Generic field containing additional information relevant to the [discountType](#tocSproductdiscounttypedoc) specified. Whether mandatory or not is dependent on the value of [discountType](#tocSproductdiscounttypedoc)" + }, + "additionalInfo": { + "type": "string", + "description": "Display text providing more information on the discount" + }, + "additionalInfoUri": { + "type": "string", + "description": "Link to a web page with more information on this discount", + "x-cds-type": "URIString" + }, + "eligibility": { + "type": "array", + "description": "Eligibility constraints that apply to this discount. Mandatory if `discountType` is `ELIGIBILITY_ONLY`.", + "items": { + "$ref": "#/components/schemas/BankingProductDiscountEligibility" + } + } + }, + "x-conditional": [ + "accruedRate", + "additionalValue", + "amount", + "balanceRate", + "eligibility", + "feeRate", + "transactionRate" + ] + }, + "BankingProductDiscountEligibility": { + "required": [ + "discountEligibilityType" + ], + "type": "object", + "properties": { + "discountEligibilityType": { + "type": "string", + "description": "The type of the specific eligibility constraint for a discount. For further details, refer to [Product Discount Eligibility Types](#tocSproductdiscounteligibilitydoc)", + "enum": [ + "BUSINESS", + "EMPLOYMENT_STATUS", + "INTRODUCTORY", + "MAX_AGE", + "MIN_AGE", + "MIN_INCOME", + "MIN_TURNOVER", + "NATURAL_PERSON", + "OTHER", + "PENSION_RECIPIENT", + "RESIDENCY_STATUS", + "STAFF", + "STUDENT" + ] + }, + "additionalValue": { + "type": "string", + "description": "Generic field containing additional information relevant to the [discountEligibilityType](#tocSproductdiscounteligibilitydoc) specified. Whether mandatory or not is dependent on the value of [discountEligibilityType](#tocSproductdiscounteligibilitydoc)" + }, + "additionalInfo": { + "type": "string", + "description": "Display text providing more information on this eligibility constraint. Whether mandatory or not is dependent on the value of [discountEligibilityType](#tocSproductdiscounteligibilitydoc)" + }, + "additionalInfoUri": { + "type": "string", + "description": "Link to a web page with more information on this eligibility constraint", + "x-cds-type": "URIString" + } + }, + "x-conditional": [ + "additionalInfo", + "additionalValue" + ] + }, + "BankingProductDepositRateV2": { + "required": [ + "depositRateType", + "rate" + ], + "type": "object", + "properties": { + "depositRateType": { + "type": "string", + "description": "The type of rate (`FIXED`, `VARIABLE`, `BONUS`, etc). For further details, refer to [Product Deposit Rate Types](#tocSproductdepositratetypedoc)", + "enum": [ + "BONUS", + "FIXED", + "FLOATING", + "MARKET_LINKED", + "VARIABLE" + ], + "example": "VARIABLE" + }, + "rate": { + "type": "string", + "description": "The rate to be applied", + "x-cds-type": "RateString" + }, + "adjustmentToBase": { + "type": "string", + "description": "For an adjustment `depositRateType`, the base rate that the adjustment value will apply to. The value of the `additionalValue` field may be used to further qualify the corresponding base.", + "enum": [ + "FIXED", + "FLOATING", + "MARKET_LINKED", + "VARIABLE" + ], + "example": "FIXED" + }, + "adjustmentBundle": { + "type": "string", + "description": "The name of the bundle that makes the adjustment rate applicable" + }, + "calculationFrequency": { + "type": "string", + "description": "The period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see `applicationFrequency`). Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "applicationType": { + "type": "string", + "description": "The type of approach used to apply the rate to the account. An `applicationFrequency` value is only expected when the approach is `PERIODIC`", + "enum": [ + "MATURITY", + "PERIODIC", + "UPFRONT" + ], + "example": "PERIODIC" + }, + "applicationFrequency": { + "type": "string", + "description": "The period after which the calculated amount(s) (see `calculationFrequency`) are 'applied' (i.e. debited or credited) to the account. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "tiers": { + "type": "array", + "description": "Rate tiers applicable for this rate", + "items": { + "$ref": "#/components/schemas/BankingProductRateTierV4" + } + }, + "applicabilityConditions": { + "type": "array", + "description": "Array of applicability conditions for a rate", + "items": { + "$ref": "#/components/schemas/BankingProductRateConditionV2" + } + }, + "additionalValue": { + "type": "string", + "description": "Generic field containing additional information relevant to the [depositRateType](#tocSproductdepositratetypedoc) specified. Whether mandatory or not is dependent on the value of [depositRateType](#tocSproductdepositratetypedoc)" + }, + "additionalInfo": { + "type": "string", + "description": "Display text providing more information on the rate" + }, + "additionalInfoUri": { + "type": "string", + "description": "Link to a web page with more information on this rate", + "x-cds-type": "URIString" + } + }, + "x-conditional": [ + "additionalValue" + ] + }, + "BankingProductLendingRateV3": { + "required": [ + "lendingRateType" + ], + "type": "object", + "properties": { + "lendingRateType": { + "type": "string", + "description": "The type of rate (fixed, variable, etc). For further details, refer to [Product Lending Rate Types](#tocSproductlendingratetypedoc)", + "enum": [ + "BALANCE_TRANSFER", + "CASH_ADVANCE", + "DISCOUNT", + "FEE", + "FIXED", + "FLOATING", + "MARKET_LINKED", + "PENALTY", + "PURCHASE", + "VARIABLE" + ], + "example": "DISCOUNT" + }, + "rate": { + "type": "string", + "description": "The rate to be applied. Mandatory unless the `lendingRateType` `FEE` is supplied", + "x-cds-type": "RateString" + }, + "referenceRate": { + "type": "string", + "description": "The reference or index rate for this account option, or variant", + "x-cds-type": "RateString" + }, + "comparisonRate": { + "type": "string", + "description": "A comparison rate equivalent for this rate. The comparison rate associated with an 'adjustment' [lendingRateType](#tocSproductlendingratetypedoc) is the full comparison rate assuming the adjusted rate is available for origination.", + "x-cds-type": "RateString" + }, + "revertRate": { + "type": "string", + "description": "The revert rate applicable after the respective rate expires. For example, `FIXED`, or `INTEREST_ONLY` rates may revert to a different rate when those terms expire. Expected where this product will continue to operate with a new 'revert' rate.", + "x-cds-type": "RateString" + }, + "revertProductId": { + "type": "string", + "description": "A reference to a `productId` that the associated product will revert to after the respective rate terms expire. For example, `FIXED`, or `INTEREST_ONLY` rates may revert to a different rate when those terms expire. Expected if the product will change when the rate reverts to different terms." + }, + "adjustmentToBase": { + "type": "string", + "description": "For an adjustment `lendingRateType`, the base rate that the adjustment value will apply to. The values of the `repaymentType`, `loanPurpose` and `additionalValue` fields may be used to further qualify the corresponding base.", + "enum": [ + "BALANCE_TRANSFER", + "CASH_ADVANCE", + "FEE", + "FIXED", + "FLOATING", + "MARKET_LINKED", + "PURCHASE", + "VARIABLE" + ], + "example": "BALANCE_TRANSFER" + }, + "adjustmentBundle": { + "type": "string", + "description": "The name of the bundle that makes the adjustment rate applicable" + }, + "calculationFrequency": { + "type": "string", + "description": "The period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see `applicationFrequency`). Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "applicationType": { + "type": "string", + "description": "The type of approach used to apply the rate to the account. An `applicationFrequency` value is only expected when the approach is `PERIODIC`", + "enum": [ + "MATURITY", + "PERIODIC", + "UPFRONT" + ], + "example": "PERIODIC" + }, + "applicationFrequency": { + "type": "string", + "description": "The period after which the calculated amount(s) (see `calculationFrequency`) are 'applied' (i.e. debited or credited) to the account. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "interestPaymentDue": { + "type": "string", + "description": "When loan payments are due to be paid within each period. The investment benefit of earlier payments affect the rate that can be offered", + "enum": [ + "IN_ADVANCE", + "IN_ARREARS" + ] + }, + "repaymentType": { + "type": "string", + "description": "Options in place for repayments. If absent, the lending rate is applicable to all repayment types", + "enum": [ + "INTEREST_ONLY", + "PRINCIPAL_AND_FEE", + "PRINCIPAL_AND_INTEREST" + ] + }, + "loanPurpose": { + "type": "string", + "description": "The reason for taking out the loan. If absent, the lending rate is applicable to all loan purposes", + "enum": [ + "INVESTMENT", + "OWNER_OCCUPIED" + ] + }, + "tiers": { + "type": "array", + "description": "Rate tiers applicable for this rate", + "items": { + "$ref": "#/components/schemas/BankingProductRateTierV4" + } + }, + "applicabilityConditions": { + "type": "array", + "description": "Array of applicability conditions for a rate", + "items": { + "$ref": "#/components/schemas/BankingProductRateConditionV2" + } + }, + "additionalValue": { + "type": "string", + "description": "Generic field containing additional information relevant to the [lendingRateType](#tocSproductlendingratetypedoc) specified. Whether mandatory or not is dependent on the value of [lendingRateType](#tocSproductlendingratetypedoc)" + }, + "additionalInfo": { + "type": "string", + "description": "Display text providing more information on the rate" + }, + "additionalInfoUri": { + "type": "string", + "description": "Link to a web page with more information on this rate", + "x-cds-type": "URIString" + } + }, + "x-conditional": [ + "additionalValue", + "rate" + ] + }, + "BankingProductRateTierV4": { + "required": [ + "minimumValue", + "name", + "unitOfMeasure" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "A display name for the tier" + }, + "unitOfMeasure": { + "type": "string", + "description": "The unit of measure that applies to the `minimumValue` and `maximumValue` values, e.g.:", + "enum": [ + "DAY", + "DOLLAR", + "MONTH", + "PERCENT" + ] + }, + "minimumValue": { + "type": "string", + "description": "The number of `unitOfMeasure` units that form the lower bound of the tier. The tier should be inclusive of this value" + }, + "maximumValue": { + "type": "string", + "description": "The number of `unitOfMeasure` units that form the upper bound of the tier or band. For a tier with a discrete value (as opposed to a range of values e.g. 1 month) this must be the same as `minimumValue`. Where this is the same as the `minimumValue` value of the next-higher tier the referenced tier should be exclusive of this value. For example a term deposit of 2 months falls into the upper tier of the following tiers: (1 – 2 months, 2 – 3 months). If absent the tier's range has no upper bound." + }, + "rateApplicationMethod": { + "type": "string", + "description": "The method used to calculate the amount to be applied using one or more tiers. A single rate may be applied to the entire balance or each applicable tier rate is applied to the portion of the balance that falls into that tier (referred to as 'bands' or 'steps')", + "enum": [ + "PER_TIER", + "WHOLE_BALANCE" + ] + }, + "applicabilityConditions": { + "type": "array", + "description": "Array of applicability conditions for a tier", + "items": { + "$ref": "#/components/schemas/BankingProductRateConditionV2" + } + }, + "additionalInfo": { + "type": "string", + "description": "Display text providing more information on the rate tier" + }, + "additionalInfoUri": { + "type": "string", + "description": "Link to a web page with more information on this rate tier", + "x-cds-type": "URIString" + } + }, + "description": "Defines the criteria and conditions for which a rate applies" + }, + "BankingProductRateConditionV2": { + "type": "object", + "description": "Defines a condition for the applicability of a tiered rate", + "properties": { + "rateApplicabilityType": { + "type": "string", + "description": "Category of applicability condition associated with the rate. For more information refer to [Rate and Tier Applicability Types](#tocSbankingproductrateconditiondoc)", + "enum": [ + "DEPOSITS_MIN", + "DEPOSITS_MIN_AMOUNT", + "DEPOSIT_BALANCE_INCREASED", + "EXISTING_CUST", + "NEW_ACCOUNTS", + "NEW_CUSTOMER", + "NEW_CUSTOMER_TO_GROUP", + "ONLINE_ONLY", + "OTHER", + "PURCHASES_MIN", + "WITHDRAWALS_MAX", + "WITHDRAWALS_MAX_AMOUNT" + ], + "example": "NEW_CUSTOMER" + }, + "additionalValue": { + "type": "string", + "description": "Generic field containing additional information relevant to the `rateApplicabilityType` specified. Whether mandatory or not is dependent on the value of [rateApplicabilityType](#tocSbankingproductrateconditiondoc)" + }, + "additionalInfo": { + "type": "string", + "description": "Display text providing more information on the condition" + }, + "additionalInfoUri": { + "type": "string", + "description": "Link to a web page with more information on this condition", + "x-cds-type": "URIString" + } + }, + "x-conditional": [ + "additionalValue", + "additionalInfo" + ] + }, + "BankingProductInstalments": { + "required": [ + "maximumPlanCount", + "instalmentsLimit", + "minimumPlanValue", + "maximumPlanValue", + "minimumSplit", + "maximumSplit" + ], + "type": "object", + "properties": { + "maximumPlanCount": { + "type": "integer", + "description": "Total number of plans that may be created", + "example": 1, + "x-cds-type": "PositiveInteger" + }, + "instalmentsLimit": { + "type": "string", + "description": "Maximum combined limit of all instalment plans that may be created", + "x-cds-type": "AmountString" + }, + "minimumPlanValue": { + "type": "string", + "description": "Minimum value that can be opened as an instalment plan", + "x-cds-type": "AmountString" + }, + "maximumPlanValue": { + "type": "string", + "description": "Maximum value that can be opened as an instalment plan", + "x-cds-type": "AmountString" + }, + "minimumSplit": { + "type": "integer", + "description": "Minimum number of instalment payments a plan can be created with", + "x-cds-type": "PositiveInteger", + "example": 4 + }, + "maximumSplit": { + "type": "integer", + "description": "Maximum number of instalment payments a plan can be created with", + "x-cds-type": "PositiveInteger", + "example": 4 + } + } + }, + "ResponseBankingAccountListV3": { + "required": [ + "data", + "links", + "meta" + ], + "type": "object", + "properties": { + "data": { + "required": [ + "accounts" + ], + "type": "object", + "properties": { + "accounts": { + "type": "array", + "description": "The list of accounts returned. If the filter results in an empty set then this array may have no records", + "items": { + "$ref": "#/components/schemas/BankingAccountV3" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/LinksPaginated" + }, + "meta": { + "$ref": "#/components/schemas/MetaPaginated" + } + } + }, + "BankingAccountV3": { + "required": [ + "accountId", + "displayName", + "accountOwnership", + "maskedNumber", + "productCategory", + "productName" + ], + "type": "object", + "properties": { + "accountId": { + "type": "string", + "description": "A unique ID of the account adhering to the standards for ID permanence", + "x-cds-type": "ASCIIString" + }, + "creationDate": { + "type": "string", + "description": "Date that the account was created (if known)", + "x-cds-type": "DateString" + }, + "displayName": { + "type": "string", + "description": "The display name of the account as defined by the bank. This should not incorporate account numbers or PANs. If it does the values should be masked according to the rules of the [MaskedAccountString](#common-field-types) common type." + }, + "nickname": { + "type": "string", + "description": "A customer supplied nick name for the account" + }, + "openStatus": { + "type": "string", + "description": "Open or closed status for the account. If not present then `OPEN` is assumed", + "default": "OPEN", + "enum": [ + "CLOSED", + "OPEN" + ] + }, + "isOwned": { + "type": "boolean", + "description": "Flag indicating that the customer associated with the authorisation is an owner of the account. Does not indicate sole ownership, however. If not present then `true` is assumed", + "default": true, + "x-cds-type": "Boolean" + }, + "accountOwnership": { + "type": "string", + "description": "Value indicating the number of customers that have ownership of the account, according to the data holder's definition of account ownership. Does not indicate that all account owners are eligible consumers", + "enum": [ + "UNKNOWN", + "ONE_PARTY", + "TWO_PARTY", + "MANY_PARTY", + "OTHER" + ] + }, + "maskedNumber": { + "type": "string", + "description": "A masked version of the account. Whether BSB/Account Number, Credit Card PAN or another number", + "x-cds-type": "MaskedAccountString" + }, + "productCategory": { + "$ref": "#/components/schemas/BankingProductCategoryV2" + }, + "productName": { + "type": "string", + "description": "The unique identifier of the account as defined by the data holder (akin to model number for the account)" + } + } + }, + "ResponseBankingAccountByIdV4": { + "required": [ + "data", + "links" + ], + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/BankingAccountDetailV4" + }, + "links": { + "$ref": "#/components/schemas/Links" + }, + "meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "BankingAccountDetailV4": { + "allOf": [ + { + "$ref": "#/components/schemas/BankingAccountV3" + }, + { + "type": "object", + "properties": { + "bsb": { + "type": "string", + "description": "The unmasked BSB for the account. Is expected to be formatted as digits only with leading zeros included and no punctuation or spaces" + }, + "accountNumber": { + "type": "string", + "description": "The unmasked account number for the account. Should not be supplied if the account number is a PAN requiring PCI compliance. Is expected to be formatted as digits only with leading zeros included and no punctuation or spaces" + }, + "bundleName": { + "type": "string", + "description": "Optional field to indicate if this account is part of a bundle that is providing additional benefit to the customer" + }, + "cardOption": { + "$ref": "#/components/schemas/BankingProductCardOption" + }, + "instalments": { + "$ref": "#/components/schemas/BankingAccountInstalments" + }, + "termDeposit": { + "type": "array", + "description": "A structure suited to accounts that have term deposit-like features", + "items": { + "$ref": "#/components/schemas/BankingTermDepositAccountV2" + } + }, + "creditCard": { + "type": "array", + "description": "A structure suited to accounts that have credit card-like features", + "$ref": "#/components/schemas/BankingCreditCardAccountV2" + }, + "loan": { + "description": "A structure suited to accounts that have loan-like features", + "$ref": "#/components/schemas/BankingLoanAccountV3" + }, + "deposit": { + "description": "A structure suited to accounts that have deposit-like features without term deposit maturity detail", + "$ref": "#/components/schemas/BankingDepositAccount" + }, + "features": { + "type": "array", + "description": "Array of features of the account based on the equivalent structure in Product Reference with the following additional field", + "items": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/BankingProductFeatureV3" + }, + { + "type": "object", + "properties": { + "isActivated": { + "type": "boolean", + "description": "(Note this is an additional field appended to the feature object defined in the Product Reference payload.)", + "x-cds-type": "Boolean" + } + } + } + ] + } + }, + "fees": { + "type": "array", + "description": "Fees and charges applicable to the account based on the equivalent structure in Product Reference", + "items": { + "$ref": "#/components/schemas/BankingProductFeeV2" + } + }, + "addresses": { + "type": "array", + "description": "The addresses for the account to be used for correspondence", + "items": { + "$ref": "#/components/schemas/CommonPhysicalAddress" + } + } + } + } + ] + }, + "BankingAccountInstalments": { + "description": "Details of instalment features on the account", + "allOf": [ + { + "$ref": "#/components/schemas/BankingProductInstalments" + }, + { + "type": "object", + "properties": { + "plans": { + "type": "array", + "description": "Array of instalment plans", + "items": { + "$ref": "#/components/schemas/BankingInstalmentPlans" + } + } + } + } + ] + }, + "BankingInstalmentPlans": { + "required": [ + "planNickname", + "creationDate", + "amount", + "duration", + "instalmentInterval", + "schedule" + ], + "type": "object", + "properties": { + "planNickname": { + "type": "string", + "description": "The short display name of the plan as provided by the customer. Where a customer has not provided a nickname, a display name derived by the data holder consistent with existing channels" + }, + "creationDate": { + "type": "string", + "description": "The date the plan was created", + "x-cds-type": "DateString" + }, + "amount": { + "type": "string", + "description": "The total amount of the plan", + "x-cds-type": "AmountString" + }, + "duration": { + "type": "string", + "description": "The original expected repayment duration. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "instalmentInterval": { + "type": "string", + "description": "The expected repayment interval. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "schedule": { + "type": "array", + "description": "Array of expected repayment amounts and dates", + "items": { + "$ref": "#/components/schemas/BankingInstalmentPlanSchedule" + } + } + } + }, + "BankingInstalmentPlanSchedule": { + "required": [ + "amountDue", + "dueDate" + ], + "type": "object", + "properties": { + "amountDue": { + "type": "string", + "description": "Amount due with this repayment", + "x-cds-type": "AmountString" + }, + "dueDate": { + "type": "string", + "description": "Date this repayment is due", + "x-cds-type": "DateString" + } + } + }, + "BankingTermDepositAccountV2": { + "required": [ + "lodgementDate", + "maturityDate", + "maturityInstructions" + ], + "type": "object", + "properties": { + "lodgementDate": { + "type": "string", + "description": "The lodgement date of the original deposit", + "x-cds-type": "DateString" + }, + "maturityDate": { + "type": "string", + "description": "Maturity date for the term deposit", + "x-cds-type": "DateString" + }, + "maturityAmount": { + "type": "string", + "description": "Amount to be paid upon maturity. If absent it implies the amount to paid is variable and cannot currently be calculated", + "x-cds-type": "AmountString" + }, + "maturityCurrency": { + "type": "string", + "description": "If absent assumes `AUD`", + "x-cds-type": "CurrencyString" + }, + "maturityInstructions": { + "type": "string", + "description": "Current instructions on action to be taken at maturity. This includes default actions that may be specified in the terms and conditions for the product e.g. roll-over to the same term and frequency of interest payments", + "enum": [ + "HOLD_ON_MATURITY", + "PAID_OUT_AT_MATURITY", + "ROLLED_OVER" + ] + }, + "depositRateDetail": { + "$ref": "#/components/schemas/BankingDepositRateDetail" + } + } + }, + "BankingDepositRateDetail": { + "type": "object", + "description": "Detail about deposit rates and adjustments", + "required": [ + "depositRateType", + "referenceRate", + "effectiveRate" + ], + "properties": { + "depositRateType": { + "type": "string", + "description": "The type of rate", + "enum": [ + "FIXED", + "FLOATING", + "MARKET_LINKED", + "VARIABLE" + ] + }, + "referenceRate": { + "type": "string", + "description": "Reference rate for this account type and terms", + "x-cds-type": "RateString" + }, + "effectiveRate": { + "type": "string", + "description": "Rate being paid for this deposit", + "x-cds-type": "RateString" + }, + "calculationFrequency": { + "type": "string", + "description": "The period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see `applicationFrequency`). Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "applicationType": { + "type": "string", + "description": "The type of approach used to apply the rate to the account. An `applicationFrequency` value is only expected when the approach is `PERIODIC`", + "enum": [ + "MATURITY", + "PERIODIC", + "UPFRONT" + ], + "example": "PERIODIC" + }, + "applicationFrequency": { + "type": "string", + "description": "The period after which the calculated amount(s) (see `calculationFrequency`) are 'applied' (i.e. debited or credited) to the account. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "tiers": { + "type": "array", + "description": "Rate tiers applicable for this rate", + "items": { + "$ref": "#/components/schemas/BankingProductRateTierV4" + } + }, + "applicabilityConditions": { + "type": "array", + "description": "Array of applicability conditions for a rate", + "items": { + "$ref": "#/components/schemas/BankingProductRateConditionV2" + } + }, + "additionalValue": { + "type": "string", + "description": "Generic field containing additional information relevant to the [depositRateType](#tocSproductdepositratetypedoc) specified. Whether mandatory or not is dependent on the value of [depositRateType](#tocSproductdepositratetypedoc)" + }, + "additionalInfo": { + "type": "string", + "description": "Display text providing more information on the rate" + }, + "additionalInfoUri": { + "type": "string", + "description": "Link to a web page with more information on this rate", + "x-cds-type": "URIString" + }, + "adjustments": { + "type": "array", + "description": "Adjustments applicable to the rate", + "items": { + "$ref": "#/components/schemas/BankingRateAdjustments" + } + } + }, + "x-conditional": [ + "additionalValue" + ] + }, + "BankingRateAdjustments": { + "type": "object", + "description": "Information about adjustments to an associated rate", + "required": [ + "adjustmentType" + ], + "properties": { + "adjustmentType": { + "type": "string", + "description": "The type of adjustment. For further details, refer to [Deposit Adjustment Rate Types](#tocSproductdepositadjustmentratetypedoc) and [Lending Adjustment Rate Types](#tocSproductlendingadjustmentratetypedoc)", + "enum": [ + "BONUS", + "DISCOUNT", + "PENALTY" + ] + }, + "amount": { + "type": "string", + "description": "Adjustment amount if not a rate", + "x-cds-type": "AmountString" + }, + "currency": { + "type": "string", + "description": "Adjustment amount currency. If absent assumes `AUD`", + "x-cds-type": "CurrencyString" + }, + "rate": { + "type": "string", + "description": "Adjustment to an associated base rate. The impact to the base rate depends on the type of base (deposit or loan) and the `adjustmentType` (bonus, discount or penalty)", + "x-cds-type": "RateString" + }, + "adjustmentBundle": { + "type": "string", + "description": "The name of the bundle that makes the adjustment rate applicable" + }, + "adjustmentPeriod": { + "type": "string", + "description": "The original or standard adjustment period after which the adjustment ends. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "adjustmentEndDate": { + "type": "string", + "description": "Date the adjustment will cease to apply", + "x-cds-type": "DateString" + }, + "additionalValue": { + "type": "string", + "description": "Generic field containing additional information relevant to the `adjustmentType` specified. Whether mandatory or not is dependent on the value of `adjustmentType`" + }, + "additionalInfo": { + "type": "string", + "description": "Display text providing more information on the rate" + }, + "additionalInfoUri": { + "type": "string", + "description": "Link to a web page with more information on this rate", + "x-cds-type": "URIString" + } + }, + "x-conditional": [ + "additionalValue" + ] + }, + "BankingCreditCardAccountV2": { + "required": [ + "minPaymentAmount", + "paymentDueAmount", + "paymentDueDate", + "cardPlans" + ], + "type": "object", + "properties": { + "minPaymentAmount": { + "type": "string", + "description": "The minimum payment amount due for the next card payment", + "x-cds-type": "AmountString" + }, + "paymentDueAmount": { + "type": "string", + "description": "The amount due for the next card payment", + "x-cds-type": "AmountString" + }, + "paymentCurrency": { + "type": "string", + "description": "If absent assumes `AUD`", + "x-cds-type": "CurrencyString" + }, + "paymentDueDate": { + "type": "string", + "description": "Date that the next payment for the card is due", + "x-cds-type": "DateString" + }, + "cardPlans": { + "type": "array", + "description": "Card plans sorted in order of repayment allocation. Repayments are allocated to the first entry first.", + "items": { + "$ref": "#/components/schemas/BankingCreditCardPlan" + } + } + } + }, + "BankingCreditCardPlan": { + "required": [ + "planType", + "planReferenceRate", + "planEffectiveRate" + ], + "type": "object", + "properties": { + "nickname": { + "type": "string", + "description": "A short display name of the deposit amount if provided by the customer. Where a customer has not provided a nickname, a display name derived by the bank consistent with existing digital banking channels may be provided" + }, + "planType": { + "description": "The credit card plan type", + "$ref": "#/components/schemas/BankingCardPlanTypes" + }, + "atExpiryBalanceTransfersTo": { + "description": "A reference to the plan type that any balance will be transferred to at the expiry of this plan", + "$ref": "#/components/schemas/BankingCardPlanTypes" + }, + "planCreationDate": { + "type": "string", + "description": "Date this plan was created", + "x-cds-type": "DateString" + }, + "planPeriod": { + "type": "string", + "description": "Original duration for this plan. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "planEndDate": { + "type": "string", + "description": "Date this plan is expected to end", + "x-cds-type": "DateString" + }, + "planReferenceRate": { + "type": "string", + "description": "Reference rate for this plan type", + "x-cds-type": "RateString" + }, + "planEffectiveRate": { + "type": "string", + "description": "Effective rate for this plan", + "x-cds-type": "RateString" + }, + "minPaymentAmount": { + "type": "string", + "description": "The minimum payment amount due for this plan", + "x-cds-type": "AmountString" + }, + "paymentDueAmount": { + "type": "string", + "description": "The amount due for this plan", + "x-cds-type": "AmountString" + }, + "paymentCurrency": { + "type": "string", + "description": "If absent assumes `AUD`", + "x-cds-type": "CurrencyString" + }, + "paymentDueDate": { + "type": "string", + "description": "Date that the next payment for this plan is due", + "x-cds-type": "DateString" + }, + "additionalInfo": { + "type": "string", + "description": "Display text providing more information on the plan" + }, + "additionalInfoUri": { + "type": "string", + "description": "Link to a web page with more information on this plan", + "x-cds-type": "URIString" + }, + "interestFreePeriods": { + "type": "array", + "description": "Defines when any current or future interest-free periods will be applicable to this plan. The interest-free period itself will be specified through an associated `INTEREST_FREE` plan feature.", + "items": { + "type": "object", + "required": [ + "to" + ], + "properties": { + "from": { + "type": "string", + "description": "The date any associated interest-free period will be available for the plan", + "x-cds-type": "DateString" + }, + "to": { + "type": "string", + "description": "The date any associated interest-free period will no longer be available", + "x-cds-type": "DateString" + } + } + } + }, + "adjustments": { + "type": "array", + "description": "Adjustments applicable to the plan rate", + "items": { + "$ref": "#/components/schemas/BankingRateAdjustments" + } + }, + "planFeatures": { + "type": "array", + "description": "Array of features available or applicable to this plan", + "items": { + "$ref": "#/components/schemas/BankingCardPlanFeatures" + } + } + } + }, + "BankingCardPlanTypes": { + "type": "string", + "enum": [ + "BALANCE_TRANSFER_PLAN", + "CASH_ADVANCE_PLAN", + "INSTALMENT_PLAN", + "PURCHASE_PLAN" + ], + "example": "PURCHASE_PLAN" + }, + "BankingCardPlanFeatures": { + "type": "object", + "description": "Features and limitations available or applicable to the associated plan", + "required": [ + "planFeatureType" + ], + "properties": { + "planFeatureType": { + "type": "string", + "description": "Type of feature or limitation. For details refer to [Plan Feature Types](#tocSbankingproductplanfeaturedoc).", + "enum": [ + "BALANCE_TRANSFER_ENDS_INTEREST_FREE", + "INSTALMENTS", + "INTEREST_FREE" + ] + }, + "period": { + "type": "string", + "description": "Original duration of the feature or limitation. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "endDate": { + "type": "string", + "description": "Date that the feature or limitation will cease to apply", + "x-cds-type": "DateString" + }, + "additionalValue": { + "type": "string", + "description": "Detail associated with the planFeatureType. For details refer to [Plan Feature Types](#tocSbankingproductplanfeaturedoc)." + }, + "additionalInfo": { + "type": "string", + "description": "Display text providing more information on the plan feature" + }, + "additionalInfoUri": { + "type": "string", + "description": "Link to a web page with more information on this plan feature", + "x-cds-type": "URIString" + } + }, + "x-conditional": [ + "additionalValue" + ] + }, + "BankingDepositAccount": { + "type": "object", + "properties": { + "lodgementDate": { + "type": "string", + "description": "The lodgement date of the deposit", + "x-cds-type": "DateString" + }, + "nickname": { + "type": "string", + "description": "A short display name of the deposit amount if provided by the customer. Where a customer has not provided a nickname, a display name derived by the bank consistent with existing digital banking channels may be provided", + "x-cds-type": "DateString" + }, + "depositRateDetail": { + "$ref": "#/components/schemas/BankingDepositRateDetail" + } + } + }, + "BankingLoanAccountV3": { + "type": "object", + "properties": { + "originalStartDate": { + "type": "string", + "description": "Optional original start date for the loan", + "x-cds-type": "DateString" + }, + "originalLoanAmount": { + "type": "string", + "description": "Optional original loan value", + "x-cds-type": "AmountString" + }, + "originalLoanCurrency": { + "type": "string", + "description": "If absent assumes `AUD`", + "x-cds-type": "CurrencyString" + }, + "loanEndDate": { + "type": "string", + "description": "Date that the loan is due to be repaid in full", + "x-cds-type": "DateString" + }, + "nextInstalmentDate": { + "type": "string", + "description": "Next date that an instalment is required", + "x-cds-type": "DateString" + }, + "minInstalmentAmount": { + "type": "string", + "description": "Minimum amount of next instalment", + "x-cds-type": "AmountString" + }, + "minInstalmentCurrency": { + "type": "string", + "description": "If absent assumes `AUD`", + "x-cds-type": "CurrencyString" + }, + "maxRedraw": { + "type": "string", + "description": "Maximum amount of funds that can be redrawn. If not present redraw is not available even if the feature exists for the account", + "x-cds-type": "AmountString" + }, + "maxRedrawCurrency": { + "type": "string", + "description": "If absent assumes `AUD`", + "x-cds-type": "CurrencyString" + }, + "minRedraw": { + "type": "string", + "description": "Minimum redraw amount", + "x-cds-type": "AmountString" + }, + "minRedrawCurrency": { + "type": "string", + "description": "If absent assumes `AUD`", + "x-cds-type": "CurrencyString" + }, + "offsetAccountEnabled": { + "type": "boolean", + "description": "Set to `true` if one or more offset accounts are configured for this loan account", + "x-cds-type": "Boolean" + }, + "offsetAccountIds": { + "type": "array", + "description": "The accountIDs of the configured offset accounts attached to this loan. Only offset accounts that can be accessed under the current authorisation should be included. It is expected behaviour that `offsetAccountEnabled` is set to `true` but the `offsetAccountIds` field is absent or empty. This represents a situation where an offset account exists but details can not be accessed under the current authorisation", + "items": { + "type": "string", + "x-cds-type": "ASCIIString" + } + }, + "lendingRateDetail": { + "type": "array", + "description": "Information about lending rates and adjustments", + "items": { + "$ref": "#/components/schemas/BankingLendingRateDetail" + } + } + } + }, + "BankingLendingRateDetail": { + "description": "Information about lending rates and adjustments. Future-dated rates allow scheduled rate changes such as 'revert' rates to be specified.", + "type": "object", + "required": [ + "loanCostType", + "repaymentUType" + ], + "properties": { + "loanPurpose": { + "type": "string", + "description": "The reason for taking out the loan. If absent, the lending rate is applicable to all loan purposes", + "enum": [ + "INVESTMENT", + "OWNER_OCCUPIED" + ], + "example": "OWNER_OCCUPIED" + }, + "repaymentType": { + "type": "string", + "description": "Options in place for repayments. If absent defaults to `PRINCIPAL_AND_INTEREST`", + "default": "PRINCIPAL_AND_INTEREST", + "example": "PRINCIPAL_AND_INTEREST", + "enum": [ + "INTEREST_ONLY", + "PRINCIPAL_AND_FEE", + "PRINCIPAL_AND_INTEREST" + ] + }, + "rateStartDate": { + "type": "string", + "description": "Date this rate will begin to apply. If not specified, the rate is currently applicable to the account.", + "x-cds-type": "DateString" + }, + "rateEndDate": { + "type": "string", + "description": "Date this rate will cease to apply. If not specified, the rate on the account is not scheduled to change or 'revert' to a different rate setting.", + "x-cds-type": "DateString" + }, + "revertProductId": { + "type": "string", + "description": "The `productId` of the product that this account will revert to at the specified `rateEndDate`" + }, + "repaymentUType": { + "type": "string", + "description": "The type of structure to present account specific fields", + "enum": [ + "fixedRate", + "variableRate", + "feeAmount" + ] + }, + "fixedRate": { + "$ref": "#/components/schemas/BankingLendingRateFixed" + }, + "variableRate": { + "$ref": "#/components/schemas/BankingLendingRateVariable" + }, + "feeAmount": { + "$ref": "#/components/schemas/BankingLendingFee" + }, + "adjustments": { + "type": "array", + "description": "Adjustments applicable to the rate or fee", + "items": { + "$ref": "#/components/schemas/BankingRateAdjustments" + } + } + } + }, + "BankingLendingRateFixed": { + "required": [ + "referenceRate", + "effectiveRate" + ], + "type": "object", + "properties": { + "fixedPeriod": { + "type": "string", + "description": "The period of time for the fixed rate. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "referenceRate": { + "type": "string", + "description": "Reference rate for this account type and terms", + "x-cds-type": "RateString" + }, + "effectiveRate": { + "type": "string", + "description": "The current rate to calculate interest payable being applied to lending balances as it stands at the time of the API call", + "x-cds-type": "RateString" + }, + "calculationFrequency": { + "type": "string", + "description": "The period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see `applicationFrequency`). Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "applicationType": { + "type": "string", + "description": "The type of approach used to apply the rate to the account. An `applicationFrequency` value is only expected when the approach is `PERIODIC`", + "enum": [ + "MATURITY", + "PERIODIC", + "UPFRONT" + ], + "example": "PERIODIC" + }, + "applicationFrequency": { + "type": "string", + "description": "The period after which the calculated amount(s) (see `calculationFrequency`) are 'applied' (i.e. debited or credited) to the account. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "interestPaymentDue": { + "type": "string", + "description": "When loan payments are due to be paid within each period. The investment benefit of earlier payments affect the rate that can be offered", + "enum": [ + "IN_ADVANCE", + "IN_ARREARS" + ] + }, + "repaymentFrequency": { + "type": "string", + "description": "The expected or required repayment frequency. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "additionalInfo": { + "type": "string", + "description": "Display text providing more information on the rate" + }, + "additionalInfoUri": { + "type": "string", + "description": "Link to a web page with more information on this rate", + "x-cds-type": "URIString" + } + } + }, + "BankingLendingRateVariable": { + "required": [ + "variableRateType", + "referenceRate", + "effectiveRate" + ], + "type": "object", + "properties": { + "variableRateType": { + "type": "string", + "description": "The type of variable rate", + "enum": [ + "FLOATING", + "MARKET_LINKED", + "VARIABLE" + ] + }, + "referenceRate": { + "type": "string", + "description": "Reference rate for this account type and terms", + "x-cds-type": "RateString" + }, + "effectiveRate": { + "type": "string", + "description": "The current rate to calculate interest payable being applied to lending balances as it stands at the time of the API call", + "x-cds-type": "RateString" + }, + "calculationFrequency": { + "type": "string", + "description": "The period after which the rate is applied to the balance to calculate the amount due for the period. Calculation of the amount is often daily (as balances may change) but accumulated until the total amount is 'applied' to the account (see `applicationFrequency`). Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "applicationType": { + "type": "string", + "description": "The type of approach used to apply the rate to the account. An `applicationFrequency` value is only expected when the approach is `PERIODIC`", + "enum": [ + "MATURITY", + "PERIODIC", + "UPFRONT" + ], + "example": "PERIODIC" + }, + "applicationFrequency": { + "type": "string", + "description": "The period after which the calculated amount(s) (see `calculationFrequency`) are 'applied' (i.e. debited or credited) to the account. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "interestPaymentDue": { + "type": "string", + "description": "When loan payments are due to be paid within each period. The investment benefit of earlier payments affect the rate that can be offered", + "enum": [ + "IN_ADVANCE", + "IN_ARREARS" + ] + }, + "repaymentFrequency": { + "type": "string", + "description": "The expected or required repayment frequency. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "additionalValue": { + "type": "string", + "description": "Generic field containing additional information relevant to the [variableRateType](#tocSproductlendingratetypedoc) specified. Whether mandatory or not is dependent on the value of [variableRateType](#tocSproductlendingratetypedoc)" + }, + "additionalInfo": { + "type": "string", + "description": "Display text providing more information on the rate" + }, + "additionalInfoUri": { + "type": "string", + "description": "Link to a web page with more information on this rate", + "x-cds-type": "URIString" + } + }, + "x-conditional": [ + "additionalValue" + ] + }, + "BankingLendingFee": { + "required": [ + "amount" + ], + "type": "object", + "properties": { + "amount": { + "type": "string", + "description": "Minimum payment due at specified `repaymentFrequency`", + "x-cds-type": "AmountString" + }, + "currency": { + "type": "string", + "description": "Currency of the fee. `AUD` assumed if not present", + "x-cds-type": "CurrencyString" + }, + "repaymentDue": { + "type": "string", + "description": "When loan payments are due to be paid within each period", + "enum": [ + "IN_ADVANCE", + "IN_ARREARS" + ] + }, + "repaymentFrequency": { + "type": "string", + "description": "The expected or required repayment frequency. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)", + "x-cds-type": "ExternalRef" + }, + "additionalInfo": { + "type": "string", + "description": "Display text providing more information on the fee" + }, + "additionalInfoUri": { + "type": "string", + "description": "Link to a web page with more information on this fee", + "x-cds-type": "URIString" + } + } + }, + "ResponseBankingTransactionList": { + "required": [ + "data", + "links", + "meta" + ], + "type": "object", + "properties": { + "data": { + "required": [ + "transactions" + ], + "type": "object", + "properties": { + "transactions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BankingTransaction" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/LinksPaginated" + }, + "meta": { + "$ref": "#/components/schemas/MetaPaginatedTransaction" + } + } + }, + "BankingTransaction": { + "required": [ + "accountId", + "amount", + "description", + "isDetailAvailable", + "reference", + "status", + "type" + ], + "type": "object", + "properties": { + "accountId": { + "type": "string", + "description": "ID of the account for which transactions are provided", + "x-cds-type": "ASCIIString" + }, + "transactionId": { + "type": "string", + "description": "A unique ID of the transaction adhering to the standards for ID permanence. This is mandatory (through hashing if necessary) unless there are specific and justifiable technical reasons why a transaction cannot be uniquely identified for a particular account type. It is mandatory if `isDetailAvailable` is set to true.", + "x-cds-type": "ASCIIString" + }, + "isDetailAvailable": { + "type": "boolean", + "description": "`true` if extended information is available using the transaction detail endpoint. `false` if extended data is not available", + "x-cds-type": "Boolean" + }, + "type": { + "type": "string", + "description": "The type of the transaction", + "enum": [ + "DIRECT_DEBIT", + "FEE", + "INTEREST_CHARGED", + "INTEREST_PAID", + "OTHER", + "PAYMENT", + "TRANSFER_INCOMING", + "TRANSFER_OUTGOING" + ] + }, + "status": { + "type": "string", + "description": "Status of the transaction whether pending or posted. Note that there is currently no provision in the standards to guarantee the ability to correlate a pending transaction with an associated posted transaction", + "enum": [ + "PENDING", + "POSTED" + ] + }, + "description": { + "type": "string", + "description": "The transaction description as applied by the financial institution" + }, + "postingDateTime": { + "type": "string", + "description": "The time the transaction was posted. This field is Mandatory if the transaction has status `POSTED`. This is the time that appears on a standard statement", + "x-cds-type": "DateTimeString" + }, + "valueDateTime": { + "type": "string", + "description": "Date and time at which assets become available to the account owner in case of a credit entry, or cease to be available to the account owner in case of a debit transaction entry", + "x-cds-type": "DateTimeString" + }, + "executionDateTime": { + "type": "string", + "description": "The time the transaction was executed by the originating customer, if available", + "x-cds-type": "DateTimeString" + }, + "amount": { + "type": "string", + "description": "The value of the transaction. Negative values mean money was outgoing from the account", + "x-cds-type": "AmountString" + }, + "currency": { + "type": "string", + "description": "The currency for the transaction amount. `AUD` assumed if not present", + "x-cds-type": "CurrencyString" + }, + "reference": { + "type": "string", + "description": "The reference for the transaction provided by the originating institution. Empty string if no data provided" + }, + "merchantName": { + "type": "string", + "description": "Name of the merchant for an outgoing payment to a merchant" + }, + "merchantCategoryCode": { + "type": "string", + "description": "The merchant category code (or MCC) for an outgoing payment to a merchant" + }, + "billerCode": { + "type": "string", + "description": "BPAY Biller Code for the transaction (if available)" + }, + "billerName": { + "type": "string", + "description": "Name of the BPAY biller for the transaction (if available)" + }, + "crn": { + "type": "string", + "description": "BPAY CRN for the transaction (if available).
Where the CRN contains sensitive information, it should be masked in line with how the Data Holder currently displays account identifiers in their existing online banking channels. If the contents of the CRN match the format of a Credit Card PAN they should be masked according to the rules applicable for [MaskedPANString](#common-field-types). If the contents are otherwise sensitive, then it should be masked using the rules applicable for the [MaskedAccountString](#common-field-types) common type." + }, + "apcaNumber": { + "type": "string", + "description": "6 Digit APCA number for the initiating institution. The field is fixed-width and padded with leading zeros if applicable." + } + }, + "x-conditional": [ + "transactionId", + "postingDateTime", + "crn" + ] + }, + "ResponseBankingTransactionById": { + "required": [ + "data", + "links" + ], + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/BankingTransactionDetail" + }, + "links": { + "$ref": "#/components/schemas/Links" + }, + "meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "BankingTransactionDetail": { + "allOf": [ + { + "$ref": "#/components/schemas/BankingTransaction" + }, + { + "required": [ + "extendedData" + ], + "type": "object", + "properties": { + "extendedData": { + "required": [ + "service" + ], + "type": "object", + "properties": { + "payer": { + "type": "string", + "description": "Label of the originating payer. Mandatory for inbound payment" + }, + "payee": { + "type": "string", + "description": "Label of the target PayID. Mandatory for an outbound payment. The name assigned to the BSB/Account Number or PayID (by the owner of the PayID)" + }, + "extensionUType": { + "type": "string", + "description": "Optional extended data specific to transactions originated via NPP", + "enum": [ + "x2p101Payload" + ] + }, + "x2p101Payload": { + "x-conditional": [ + "extendedDescription" + ], + "type": "object", + "properties": { + "extendedDescription": { + "type": "string", + "description": "An extended string description. Required if the extensionUType field is `x2p101Payload`" + }, + "endToEndId": { + "type": "string", + "description": "An end to end ID for the payment created at initiation" + }, + "purposeCode": { + "type": "string", + "description": "Purpose of the payment. Format is defined by NPP standards for the x2p1.01 overlay service" + } + } + }, + "service": { + "type": "string", + "description": "Identifier of the applicable overlay service. Valid values are: `X2P1.01`", + "enum": [ + "X2P1.01" + ] + } + }, + "x-conditional": [ + "payer", + "payee", + "x2p101Payload" + ] + } + } + } + ] + }, + "ResponseBankingAccountsBalanceList": { + "required": [ + "data", + "links", + "meta" + ], + "type": "object", + "properties": { + "data": { + "required": [ + "balances" + ], + "type": "object", + "properties": { + "balances": { + "type": "array", + "description": "The list of balances returned", + "items": { + "$ref": "#/components/schemas/BankingBalance" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/LinksPaginated" + }, + "meta": { + "$ref": "#/components/schemas/MetaPaginated" + } + } + }, + "ResponseBankingAccountsBalanceById": { + "required": [ + "data", + "links" + ], + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/BankingBalance" + }, + "links": { + "$ref": "#/components/schemas/Links" + }, + "meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "BankingBalance": { + "required": [ + "accountId", + "availableBalance", + "currentBalance" + ], + "type": "object", + "properties": { + "accountId": { + "type": "string", + "description": "A unique ID of the account adhering to the standards for ID permanence", + "x-cds-type": "ASCIIString" + }, + "currentBalance": { + "type": "string", + "description": "The balance of the account at this time. Should align to the balance available via other channels such as Internet Banking. Assumed to be negative if the customer has money owing", + "x-cds-type": "AmountString" + }, + "availableBalance": { + "type": "string", + "description": "Balance representing the amount of funds available for transfer. Assumed to be zero or positive", + "x-cds-type": "AmountString" + }, + "creditLimit": { + "type": "string", + "description": "Object representing the maximum amount of credit that is available for this account. Assumed to be zero if absent", + "x-cds-type": "AmountString" + }, + "amortisedLimit": { + "type": "string", + "description": "Object representing the available limit amortised according to payment schedule. Assumed to be zero if absent", + "x-cds-type": "AmountString" + }, + "currency": { + "type": "string", + "description": "The currency for the balance amounts. If absent assumed to be `AUD`", + "x-cds-type": "CurrencyString" + }, + "purses": { + "type": "array", + "description": "Optional array of balances for the account in other currencies. Included to support accounts that support multi-currency purses such as Travel Cards", + "items": { + "$ref": "#/components/schemas/BankingBalancePurse" + } + } + } + }, + "BankingBalancePurse": { + "required": [ + "amount" + ], + "type": "object", + "properties": { + "amount": { + "type": "string", + "description": "The balance available for this additional currency purse", + "x-cds-type": "AmountString" + }, + "currency": { + "type": "string", + "description": "The currency for the purse", + "x-cds-type": "CurrencyString" + } + } + }, + "ResponseBankingPayeeListV2": { + "required": [ + "data", + "links", + "meta" + ], + "type": "object", + "properties": { + "data": { + "required": [ + "payees" + ], + "type": "object", + "properties": { + "payees": { + "type": "array", + "description": "The list of payees returned", + "items": { + "$ref": "#/components/schemas/BankingPayeeV2" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/LinksPaginated" + }, + "meta": { + "$ref": "#/components/schemas/MetaPaginated" + } + } + }, + "ResponseBankingPayeeByIdV2": { + "required": [ + "data", + "links" + ], + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/BankingPayeeDetailV2" + }, + "links": { + "$ref": "#/components/schemas/Links" + }, + "meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "BankingPayeeV2": { + "required": [ + "nickname", + "payeeId", + "type" + ], + "type": "object", + "properties": { + "payeeId": { + "type": "string", + "description": "ID of the payee adhering to the rules of ID permanence", + "x-cds-type": "ASCIIString" + }, + "nickname": { + "type": "string", + "description": "The short display name of the payee as provided by the customer. Where a customer has not provided a nickname, a display name derived by the bank for the payee consistent with existing digital banking channels" + }, + "description": { + "type": "string", + "description": "A description of the payee provided by the customer" + }, + "type": { + "type": "string", + "description": "The type of payee.", + "enum": [ + "BILLER", + "DIGITAL_WALLET", + "DOMESTIC", + "INTERNATIONAL" + ] + }, + "creationDate": { + "type": "string", + "description": "The date the payee was created by the customer", + "x-cds-type": "DateString" + } + } + }, + "BankingPayeeDetailV2": { + "allOf": [ + { + "$ref": "#/components/schemas/BankingPayeeV2" + }, + { + "required": [ + "payeeUType" + ], + "type": "object", + "properties": { + "payeeUType": { + "type": "string", + "description": "Type of object included that describes the payee in detail", + "enum": [ + "biller", + "digitalWallet", + "domestic", + "international" + ] + }, + "biller": { + "$ref": "#/components/schemas/BankingBillerPayee" + }, + "domestic": { + "$ref": "#/components/schemas/BankingDomesticPayee" + }, + "digitalWallet": { + "$ref": "#/components/schemas/BankingDigitalWalletPayee" + }, + "international": { + "$ref": "#/components/schemas/BankingInternationalPayee" + } + }, + "x-conditional": [ + "biller", + "digitalWallet", + "domestic", + "international" + ] + } + ] + }, + "BankingDomesticPayee": { + "required": [ + "payeeAccountUType" + ], + "type": "object", + "properties": { + "payeeAccountUType": { + "type": "string", + "description": "Type of account object included. Valid values are: ", + "enum": [ + "account", + "card", + "payId" + ] + }, + "account": { + "$ref": "#/components/schemas/BankingDomesticPayeeAccount" + }, + "card": { + "$ref": "#/components/schemas/BankingDomesticPayeeCard" + }, + "payId": { + "$ref": "#/components/schemas/BankingDomesticPayeePayId" + } + }, + "x-conditional": [ + "account", + "card", + "payId" + ] + }, + "BankingDomesticPayeeAccount": { + "required": [ + "accountNumber", + "bsb" + ], + "type": "object", + "properties": { + "accountName": { + "type": "string", + "description": "Name of the account to pay to" + }, + "bsb": { + "type": "string", + "description": "BSB of the account to pay to" + }, + "accountNumber": { + "type": "string", + "description": "Number of the account to pay to" + } + } + }, + "BankingDomesticPayeeCard": { + "required": [ + "cardNumber" + ], + "type": "object", + "properties": { + "cardNumber": { + "type": "string", + "description": "Name of the account to pay to", + "x-cds-type": "MaskedPANString" + } + } + }, + "BankingDomesticPayeePayId": { + "required": [ + "identifier", + "type" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name assigned to the PayID by the owner of the PayID" + }, + "identifier": { + "type": "string", + "description": "The identifier of the PayID (dependent on type)" + }, + "type": { + "type": "string", + "description": "The type of the PayID", + "enum": [ + "ABN", + "EMAIL", + "ORG_IDENTIFIER", + "TELEPHONE" + ] + } + } + }, + "BankingBillerPayee": { + "required": [ + "billerCode", + "billerName" + ], + "type": "object", + "properties": { + "billerCode": { + "type": "string", + "description": "BPAY Biller Code of the Biller" + }, + "crn": { + "type": "string", + "description": "BPAY CRN of the Biller (if available).
Where the CRN contains sensitive information, it should be masked in line with how the Data Holder currently displays account identifiers in their existing online banking channels. If the contents of the CRN match the format of a Credit Card PAN they should be masked according to the rules applicable for [MaskedPANString](#common-field-types). If the contents are otherwise sensitive, then it should be masked using the rules applicable for the [MaskedAccountString](#common-field-types) common type." + }, + "billerName": { + "type": "string", + "description": "Name of the Biller" + } + }, + "x-conditional": [ + "crn" + ] + }, + "BankingInternationalPayee": { + "required": [ + "bankDetails", + "beneficiaryDetails" + ], + "type": "object", + "properties": { + "beneficiaryDetails": { + "required": [ + "country" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the beneficiary" + }, + "country": { + "type": "string", + "description": "Country where the beneficiary resides. A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code", + "x-cds-type": "ExternalRef" + }, + "message": { + "type": "string", + "description": "Response message for the payment" + } + } + }, + "bankDetails": { + "required": [ + "accountNumber", + "country" + ], + "type": "object", + "properties": { + "country": { + "type": "string", + "description": "Country of the recipient institution. A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code", + "x-cds-type": "ExternalRef" + }, + "accountNumber": { + "type": "string", + "description": "Account Targeted for payment" + }, + "bankAddress": { + "required": [ + "address", + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the recipient Bank" + }, + "address": { + "type": "string", + "description": "Address of the recipient Bank" + } + } + }, + "beneficiaryBankBIC": { + "type": "string", + "description": "Swift bank code. Aligns with standard [ISO 9362](https://www.iso.org/standard/60390.html)", + "x-cds-type": "ExternalRef" + }, + "fedWireNumber": { + "type": "string", + "description": "Number for Fedwire payment (Federal Reserve Wire Network)" + }, + "sortCode": { + "type": "string", + "description": "Sort code used for account identification in some jurisdictions" + }, + "chipNumber": { + "type": "string", + "description": "Number for the Clearing House Interbank Payments System" + }, + "routingNumber": { + "type": "string", + "description": "International bank routing number" + }, + "legalEntityIdentifier": { + "type": "string", + "description": "The legal entity identifier (LEI) for the beneficiary. Aligns with [ISO 17442](https://www.iso.org/standard/59771.html)", + "x-cds-type": "ExternalRef" + } + } + } + } + }, + "BankingDigitalWalletPayee": { + "required": [ + "identifier", + "name", + "provider", + "type" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The display name of the wallet as given by the customer, else a default value defined by the data holder" + }, + "identifier": { + "type": "string", + "description": "The identifier of the digital wallet (dependent on type)" + }, + "type": { + "type": "string", + "description": "The type of the digital wallet identifier", + "enum": [ + "EMAIL", + "CONTACT_NAME", + "TELEPHONE" + ] + }, + "provider": { + "type": "string", + "description": "The provider of the digital wallet", + "enum": [ + "PAYPAL_AU", + "OTHER" + ] + } + } + }, + "ResponseBankingDirectDebitAuthorisationList": { + "required": [ + "data", + "links", + "meta" + ], + "type": "object", + "properties": { + "data": { + "required": [ + "directDebitAuthorisations" + ], + "type": "object", + "properties": { + "directDebitAuthorisations": { + "type": "array", + "description": "The list of authorisations returned", + "items": { + "$ref": "#/components/schemas/BankingDirectDebit" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/LinksPaginated" + }, + "meta": { + "$ref": "#/components/schemas/MetaPaginated" + } + } + }, + "BankingDirectDebit": { + "required": [ + "accountId", + "authorisedEntity" + ], + "type": "object", + "properties": { + "accountId": { + "type": "string", + "description": "A unique ID of the account adhering to the standards for ID permanence.", + "x-cds-type": "ASCIIString" + }, + "authorisedEntity": { + "$ref": "#/components/schemas/BankingAuthorisedEntity" + }, + "lastDebitDateTime": { + "type": "string", + "description": "The date and time of the last debit executed under this authorisation", + "x-cds-type": "DateTimeString" + }, + "lastDebitAmount": { + "type": "string", + "description": "The amount of the last debit executed under this authorisation", + "x-cds-type": "AmountString" + } + } + }, + "BankingAuthorisedEntity": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Description of the authorised entity derived from previously executed direct debits" + }, + "financialInstitution": { + "type": "string", + "description": "Name of the financial institution through which the direct debit will be executed. Is required unless the payment is made via a credit card scheme" + }, + "abn": { + "type": "string", + "description": "Australian Business Number for the authorised entity" + }, + "acn": { + "type": "string", + "description": "Australian Company Number for the authorised entity" + }, + "arbn": { + "type": "string", + "description": "Australian Registered Body Number for the authorised entity" + } + }, + "x-conditional": [ + "financialInstitution" + ] + }, + "ResponseBankingScheduledPaymentsListV2": { + "required": [ + "data", + "links", + "meta" + ], + "type": "object", + "properties": { + "data": { + "required": [ + "scheduledPayments" + ], + "type": "object", + "properties": { + "scheduledPayments": { + "type": "array", + "description": "The list of scheduled payments to return", + "items": { + "$ref": "#/components/schemas/BankingScheduledPaymentV2" + } + } + } + }, + "links": { + "$ref": "#/components/schemas/LinksPaginated" + }, + "meta": { + "$ref": "#/components/schemas/MetaPaginated" + } + } + }, + "BankingScheduledPaymentV2": { + "required": [ + "from", + "payerReference", + "paymentSet", + "recurrence", + "scheduledPaymentId", + "status" + ], + "type": "object", + "properties": { + "scheduledPaymentId": { + "type": "string", + "description": "A unique ID of the scheduled payment adhering to the standards for ID permanence", + "x-cds-type": "ASCIIString" + }, + "nickname": { + "type": "string", + "description": "The short display name of the scheduled payment as provided by the customer if provided. Where a customer has not provided a nickname, a display name derived by the bank for the scheduled payment should be provided that is consistent with existing digital banking channels" + }, + "payerReference": { + "type": "string", + "description": "The reference for the transaction that will be used by the originating institution for the purposes of constructing a statement narrative on the payer’s account. Empty string if no data provided" + }, + "payeeReference": { + "type": "string", + "description": "The reference for the transaction, if applicable, that will be provided by the originating institution for all payments in the payment set. Empty string if no data provided" + }, + "status": { + "type": "string", + "description": "Indicates whether the schedule is currently active. The value `SKIP` is equivalent to `ACTIVE` except that the customer has requested the next normal occurrence to be skipped.", + "enum": [ + "ACTIVE", + "INACTIVE", + "SKIP" + ] + }, + "from": { + "$ref": "#/components/schemas/BankingScheduledPaymentFrom" + }, + "paymentSet": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BankingScheduledPaymentSetV2" + } + }, + "recurrence": { + "$ref": "#/components/schemas/BankingScheduledPaymentRecurrence" + } + }, + "x-conditional": [ + "payeeReference" + ] + }, + "BankingScheduledPaymentSetV2": { + "required": [ + "to" + ], + "type": "object", + "properties": { + "to": { + "$ref": "#/components/schemas/BankingScheduledPaymentToV2" + }, + "isAmountCalculated": { + "type": "boolean", + "description": "Flag indicating whether the amount of the payment is calculated based on the context of the event. For instance a payment to reduce the balance of a credit card to zero. If absent then false is assumed", + "x-cds-type": "Boolean" + }, + "amount": { + "type": "string", + "description": "The amount of the next payment if known. Mandatory unless the isAmountCalculated field is set to true. Must be zero or positive if present", + "x-cds-type": "AmountString" + }, + "currency": { + "type": "string", + "description": "The currency for the payment. `AUD` assumed if not present", + "x-cds-type": "CurrencyString" + } + }, + "description": "The set of payment amounts and destination accounts for this payment accommodating multi-part payments. A single entry indicates a simple payment with one destination account. Must have at least one entry", + "x-conditional": [ + "amount" + ] + }, + "BankingScheduledPaymentToV2": { + "required": [ + "toUType" + ], + "type": "object", + "properties": { + "toUType": { + "type": "string", + "description": "The type of object provided that specifies the destination of the funds for the payment.", + "enum": [ + "accountId", + "biller", + "digitalWallet", + "domestic", + "international", + "payeeId" + ] + }, + "accountId": { + "type": "string", + "description": "Present if `toUType` is set to `accountId`. Indicates that the payment is to another account that is accessible under the current consent", + "x-cds-type": "ASCIIString" + }, + "payeeId": { + "type": "string", + "description": "Present if `toUType` is set to `payeeId`. Indicates that the payment is to registered payee that can be accessed using the payee endpoint. If the Bank Payees scope has not been consented to then a `payeeId` should not be provided and the full payee details should be provided instead", + "x-cds-type": "ASCIIString" + }, + "nickname": { + "type": "string", + "description": "The short display name of the payee as provided by the customer unless `toUType` is set to `payeeId`. Where a customer has not provided a nickname, a display name derived by the bank for payee should be provided that is consistent with existing digital banking channels" + }, + "payeeReference": { + "type": "string", + "description": "The reference for the transaction, if applicable, that will be provided by the originating institution for the specific payment. If not empty, it overrides the value provided at the BankingScheduledPayment level." + }, + "digitalWallet": { + "$ref": "#/components/schemas/BankingDigitalWalletPayee" + }, + "domestic": { + "$ref": "#/components/schemas/BankingDomesticPayee" + }, + "biller": { + "$ref": "#/components/schemas/BankingBillerPayee" + }, + "international": { + "$ref": "#/components/schemas/BankingInternationalPayee" + } + }, + "description": "Object containing details of the destination of the payment. Used to specify a variety of payment destination types", + "x-conditional": [ + "accountId", + "payeeId", + "digitalWallet", + "domestic", + "biller", + "international", + "nickname", + "payeeReference" + ] + }, + "BankingScheduledPaymentFrom": { + "required": [ + "accountId" + ], + "type": "object", + "properties": { + "accountId": { + "type": "string", + "description": "ID of the account that is the source of funds for the payment", + "x-cds-type": "ASCIIString" + } + }, + "description": "Object containing details of the source of the payment. Currently only specifies an account ID but provided as an object to facilitate future extensibility and consistency with the to object" + }, + "BankingScheduledPaymentRecurrence": { + "required": [ + "recurrenceUType" + ], + "type": "object", + "properties": { + "nextPaymentDate": { + "type": "string", + "description": "The date of the next payment under the recurrence schedule", + "x-cds-type": "DateString" + }, + "recurrenceUType": { + "type": "string", + "description": "The type of recurrence used to define the schedule", + "enum": [ + "eventBased", + "intervalSchedule", + "lastWeekDay", + "onceOff" + ] + }, + "onceOff": { + "$ref": "#/components/schemas/BankingScheduledPaymentRecurrenceOnceOff" + }, + "intervalSchedule": { + "$ref": "#/components/schemas/BankingScheduledPaymentRecurrenceIntervalSchedule" + }, + "lastWeekDay": { + "$ref": "#/components/schemas/BankingScheduledPaymentRecurrenceLastWeekday" + }, + "eventBased": { + "$ref": "#/components/schemas/BankingScheduledPaymentRecurrenceEventBased" + } + }, + "description": "Object containing the detail of the schedule for the payment", + "x-conditional": [ + "onceOff", + "intervalSchedule", + "lastWeekDay", + "eventBased" + ] + }, + "BankingScheduledPaymentRecurrenceOnceOff": { + "required": [ + "paymentDate" + ], + "type": "object", + "properties": { + "paymentDate": { + "type": "string", + "description": "The scheduled date for the once off payment", + "x-cds-type": "DateString" + } + }, + "description": "Indicates that the payment is a once off payment on a specific future date. Mandatory if recurrenceUType is set to onceOff" + }, + "BankingScheduledPaymentRecurrenceIntervalSchedule": { + "required": [ + "intervals" + ], + "type": "object", + "properties": { + "finalPaymentDate": { + "type": "string", + "description": "The limit date after which no more payments should be made using this schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely", + "x-cds-type": "DateString" + }, + "paymentsRemaining": { + "type": "integer", + "description": "Indicates the number of payments remaining in the schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value, If neither field is present the payments will continue indefinitely", + "example": 1, + "x-cds-type": "PositiveInteger" + }, + "nonBusinessDayTreatment": { + "type": "string", + "description": "Enumerated field giving the treatment where a scheduled payment date is not a business day. If absent assumed to be `ON`.
**AFTER** - If a scheduled payment date is a non-business day the payment will be made on the first business day after the scheduled payment date.
**BEFORE** - If a scheduled payment date is a non-business day the payment will be made on the first business day before the scheduled payment date.
**ON** - If a scheduled payment date is a non-business day the payment will be made on that day regardless.
**ONLY** - Payments only occur on business days. If a scheduled payment date is a non-business day the payment will be ignored", + "default": "ON", + "enum": [ + "AFTER", + "BEFORE", + "ON", + "ONLY" + ] + }, + "intervals": { + "type": "array", + "description": "An array of interval objects defining the payment schedule. Each entry in the array is additive, in that it adds payments to the overall payment schedule. If multiple intervals result in a payment on the same day then only one payment will be made. Must have at least one entry", + "items": { + "$ref": "#/components/schemas/BankingScheduledPaymentInterval" + } + } + }, + "description": "Indicates that the schedule of payments is defined by a series of intervals. Mandatory if recurrenceUType is set to intervalSchedule" + }, + "BankingScheduledPaymentInterval": { + "required": [ + "interval" + ], + "type": "object", + "properties": { + "interval": { + "type": "string", + "description": "An interval for the payment. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) with components less than a day in length ignored. This duration defines the period between payments starting with nextPaymentDate", + "x-cds-type": "ExternalRef" + }, + "dayInInterval": { + "type": "string", + "description": "Uses an interval to define the ordinal day within the interval defined by the interval field on which the payment occurs. If the resulting duration is 0 days in length or larger than the number of days in the interval then the payment will occur on the last day of the interval. A duration of 1 day indicates the first day of the interval. If absent the assumed value is P1D. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) with components less than a day in length ignored. The first day of a week is considered to be Monday.", + "x-cds-type": "ExternalRef" + } + } + }, + "BankingScheduledPaymentRecurrenceLastWeekday": { + "required": [ + "interval", + "lastWeekDay" + ], + "type": "object", + "properties": { + "finalPaymentDate": { + "type": "string", + "description": "The limit date after which no more payments should be made using this schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely", + "x-cds-type": "DateString" + }, + "paymentsRemaining": { + "type": "integer", + "description": "Indicates the number of payments remaining in the schedule. If both finalPaymentDate and paymentsRemaining are present then payments will stop according to the most constraining value. If neither field is present the payments will continue indefinitely", + "example": 1, + "x-cds-type": "PositiveInteger" + }, + "interval": { + "type": "string", + "description": "The interval for the payment. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax) with components less than a day in length ignored. This duration defines the period between payments starting with nextPaymentDate", + "x-cds-type": "ExternalRef" + }, + "lastWeekDay": { + "type": "string", + "description": "The weekDay specified. The payment will occur on the last occurrence of this weekday in the interval.", + "enum": [ + "FRI", + "MON", + "SAT", + "SUN", + "THU", + "TUE", + "WED" + ] + }, + "nonBusinessDayTreatment": { + "type": "string", + "description": "Enumerated field giving the treatment where a scheduled payment date is not a business day. If absent assumed to be `ON`.
**AFTER** - If a scheduled payment date is a non-business day the payment will be made on the first business day after the scheduled payment date.
**BEFORE** - If a scheduled payment date is a non-business day the payment will be made on the first business day before the scheduled payment date.
**ON** - If a scheduled payment date is a non-business day the payment will be made on that day regardless.
**ONLY** - Payments only occur on business days. If a scheduled payment date is a non-business day the payment will be ignored", + "default": "ON", + "enum": [ + "AFTER", + "BEFORE", + "ON", + "ONLY" + ] + } + }, + "description": "Indicates that the schedule of payments is defined according to the last occurrence of a specific weekday in an interval. Mandatory if recurrenceUType is set to lastWeekDay" + }, + "BankingScheduledPaymentRecurrenceEventBased": { + "required": [ + "description" + ], + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Description of the event and conditions that will result in the payment. Expected to be formatted for display to a customer" + } + }, + "description": "Indicates that the schedule of payments is defined according to an external event that cannot be predetermined. Mandatory if recurrenceUType is set to eventBased" + }, + "CommonPhysicalAddress": { + "required": [ + "addressUType" + ], + "type": "object", + "properties": { + "addressUType": { + "type": "string", + "description": "The type of address object present", + "enum": [ + "paf", + "simple" + ] + }, + "simple": { + "$ref": "#/components/schemas/CommonSimpleAddress" + }, + "paf": { + "$ref": "#/components/schemas/CommonPAFAddress" + } + }, + "x-conditional": [ + "simple", + "paf" + ] + }, + "CommonSimpleAddress": { + "required": [ + "addressLine1", + "city", + "state" + ], + "type": "object", + "properties": { + "mailingName": { + "type": "string", + "description": "Name of the individual or business formatted for inclusion in an address used for physical mail" + }, + "addressLine1": { + "type": "string", + "description": "First line of the standard address object" + }, + "addressLine2": { + "type": "string", + "description": "Second line of the standard address object" + }, + "addressLine3": { + "type": "string", + "description": "Third line of the standard address object" + }, + "postcode": { + "type": "string", + "description": "Mandatory for Australian addresses" + }, + "city": { + "type": "string", + "description": "Name of the city or locality" + }, + "state": { + "type": "string", + "description": "Free text if the country is not Australia. If country is Australia then must be one of the values defined by the [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf) in the PAF file format. NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT" + }, + "country": { + "type": "string", + "description": "A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code. Australia (AUS) is assumed if country is not present.", + "default": "AUS", + "x-cds-type": "ExternalRef" + } + }, + "x-conditional": [ + "postcode" + ] + }, + "CommonPAFAddress": { + "required": [ + "localityName", + "postcode", + "state" + ], + "type": "object", + "properties": { + "dpid": { + "type": "string", + "description": "Unique identifier for an address as defined by Australia Post. Also known as Delivery Point Identifier" + }, + "thoroughfareNumber1": { + "type": "integer", + "description": "Thoroughfare number for a property (first number in a property ranged address)", + "x-cds-type": "PositiveInteger" + }, + "thoroughfareNumber1Suffix": { + "type": "string", + "description": "Suffix for the thoroughfare number. Only relevant is thoroughfareNumber1 is populated" + }, + "thoroughfareNumber2": { + "type": "integer", + "description": "Second thoroughfare number (only used if the property has a ranged address eg 23-25)", + "x-cds-type": "PositiveInteger" + }, + "thoroughfareNumber2Suffix": { + "type": "string", + "description": "Suffix for the second thoroughfare number. Only relevant is thoroughfareNumber2 is populated" + }, + "flatUnitType": { + "type": "string", + "description": "Type of flat or unit for the address" + }, + "flatUnitNumber": { + "type": "string", + "description": "Unit number (including suffix, if applicable)" + }, + "floorLevelType": { + "type": "string", + "description": "Type of floor or level for the address" + }, + "floorLevelNumber": { + "type": "string", + "description": "Floor or level number (including alpha characters)" + }, + "lotNumber": { + "type": "string", + "description": "Allotment number for the address" + }, + "buildingName1": { + "type": "string", + "description": "Building/Property name 1" + }, + "buildingName2": { + "type": "string", + "description": "Building/Property name 2" + }, + "streetName": { + "type": "string", + "description": "The name of the street" + }, + "streetType": { + "type": "string", + "description": "The street type. Valid enumeration defined by Australia Post PAF code file" + }, + "streetSuffix": { + "type": "string", + "description": "The street type suffix. Valid enumeration defined by Australia Post PAF code file" + }, + "postalDeliveryType": { + "type": "string", + "description": "Postal delivery type. (eg. PO BOX). Valid enumeration defined by Australia Post PAF code file" + }, + "postalDeliveryNumber": { + "type": "integer", + "description": "Postal delivery number if the address is a postal delivery type", + "x-cds-type": "PositiveInteger" + }, + "postalDeliveryNumberPrefix": { + "type": "string", + "description": "Postal delivery number prefix related to the postal delivery number" + }, + "postalDeliveryNumberSuffix": { + "type": "string", + "description": "Postal delivery number suffix related to the postal delivery number" + }, + "localityName": { + "type": "string", + "description": "Full name of locality" + }, + "postcode": { + "type": "string", + "description": "Postcode for the locality" + }, + "state": { + "type": "string", + "description": "State in which the address belongs. Valid enumeration defined by Australia Post PAF code file [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf). NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT" + } + }, + "description": "Australian address formatted according to the file format defined by the [PAF file format](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf)" + }, + "Links": { + "required": [ + "self" + ], + "type": "object", + "properties": { + "self": { + "type": "string", + "description": "Fully qualified link that generated the current response document", + "x-cds-type": "URIString" + } + } + }, + "Meta": { + "type": "object" + }, + "LinksPaginated": { + "required": [ + "self" + ], + "type": "object", + "properties": { + "self": { + "type": "string", + "description": "Fully qualified link that generated the current response document", + "x-cds-type": "URIString" + }, + "first": { + "type": "string", + "description": "URI to the first page of this set. Mandatory if this response is not the first page", + "x-cds-type": "URIString" + }, + "prev": { + "type": "string", + "description": "URI to the previous page of this set. Mandatory if this response is not the first page", + "x-cds-type": "URIString" + }, + "next": { + "type": "string", + "description": "URI to the next page of this set. Mandatory if this response is not the last page", + "x-cds-type": "URIString" + }, + "last": { + "type": "string", + "description": "URI to the last page of this set. Mandatory if this response is not the last page", + "x-cds-type": "URIString" + } + }, + "x-conditional": [ + "prev", + "next", + "first", + "last" + ] + }, + "MetaPaginated": { + "required": [ + "totalPages", + "totalRecords" + ], + "type": "object", + "properties": { + "totalRecords": { + "type": "integer", + "description": "The total number of records in the full set. See [pagination](#pagination).", + "x-cds-type": "NaturalNumber" + }, + "totalPages": { + "type": "integer", + "description": "The total number of pages in the full set. See [pagination](#pagination).", + "x-cds-type": "NaturalNumber" + } + } + }, + "MetaPaginatedTransaction": { + "allOf": [ + { + "$ref": "#/components/schemas/MetaPaginated" + }, + { + "type": "object", + "properties": { + "isQueryParamUnsupported": { + "type": "boolean", + "description": "**true** if *\"text\"* query parameter is not supported", + "default": false, + "x-cds-type": "Boolean" + } + } + } + ] + }, + "MetaError": { + "type": "object", + "properties": { + "urn": { + "type": "string", + "description": "The CDR error code URN which the application-specific error code extends. Mandatory if the error `code` is an application-specific error rather than a standardised error code." + } + }, + "description": "Additional data for customised error codes", + "x-conditional": [ + "urn" + ] + }, + "ResponseErrorListV2": { + "required": [ + "errors" + ], + "type": "object", + "properties": { + "errors": { + "type": "array", + "description": "", + "items": { + "required": [ + "code", + "detail", + "title" + ], + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "The code of the error encountered. Where the error is specific to the respondent, an application-specific error code, expressed as a string value. If the error is application-specific, the URN code that the specific error extends must be provided in the meta object. Otherwise, the value is the error code URN." + }, + "title": { + "type": "string", + "description": "A short, human-readable summary of the problem that MUST NOT change from occurrence to occurrence of the problem represented by the error code." + }, + "detail": { + "type": "string", + "description": "A human-readable explanation specific to this occurrence of the problem." + }, + "meta": { + "$ref": "#/components/schemas/MetaError" + } + } + } + } + }, + "x-conditional": [ + "meta" + ] + }, + "BankingProductCategoryV2": { + "type": "string", + "description": "The category to which a product or account belongs. See [here](#product-categories) for more details", + "enum": [ + "BUSINESS_LOANS", + "BUY_NOW_PAY_LATER", + "CRED_AND_CHRG_CARDS", + "LEASES", + "MARGIN_LOANS", + "OVERDRAFTS", + "PERS_LOANS", + "REGULATED_TRUST_ACCOUNTS", + "RESIDENTIAL_MORTGAGES", + "TERM_DEPOSITS", + "TRADE_FINANCE", + "TRANS_AND_SAVINGS_ACCOUNTS", + "TRAVEL_CARDS" + ] + } + }, + "parameters": { + "RequestHeader_x-v": { + "name": "x-v", + "in": "header", + "description": "Version of the API endpoint requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers)", + "required": true, + "schema": { + "type": "string" + } + }, + "RequestHeader_x-min-v": { + "name": "x-min-v", + "in": "header", + "description": "Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a `406 Not Acceptable`.", + "schema": { + "type": "string" + } + }, + "RequestHeader_x-fapi-interaction-id": { + "name": "x-fapi-interaction-id", + "in": "header", + "description": "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.", + "schema": { + "type": "string" + } + }, + "RequestHeader_x-fapi-auth-date": { + "name": "x-fapi-auth-date", + "in": "header", + "description": "The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**. Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true + }, + "x-conditional": true + }, + "RequestHeader_x-fapi-customer-ip-address": { + "name": "x-fapi-customer-ip-address", + "in": "header", + "description": "The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.", + "schema": { + "type": "string" + } + }, + "RequestHeader_x-cds-client-headers": { + "name": "x-cds-client-headers", + "in": "header", + "description": "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls. Not required for unattended or unauthenticated calls.", + "schema": { + "type": "string", + "x-conditional": true, + "x-cds-type": "Base64" + }, + "x-conditional": true, + "x-cds-type": "Base64" + }, + "ParamAccountOpenStatus": { + "name": "open-status", + "in": "query", + "description": "Used to filter results according to open/closed status. Values can be `OPEN`, `CLOSED` or `ALL`. If absent then `ALL` is assumed", + "schema": { + "type": "string", + "default": "ALL", + "enum": [ + "ALL", + "CLOSED", + "OPEN" + ] + } + }, + "ParamProductCategory": { + "name": "product-category", + "in": "query", + "description": "Used to filter results on the `productCategory` field applicable to accounts. Any one of the valid values for this field can be supplied. If absent then all accounts returned.", + "schema": { + "type": "string", + "enum": [ + "BUSINESS_LOANS", + "BUY_NOW_PAY_LATER", + "CRED_AND_CHRG_CARDS", + "LEASES", + "MARGIN_LOANS", + "OVERDRAFTS", + "PERS_LOANS", + "REGULATED_TRUST_ACCOUNTS", + "RESIDENTIAL_MORTGAGES", + "TERM_DEPOSITS", + "TRADE_FINANCE", + "TRANS_AND_SAVINGS_ACCOUNTS", + "TRAVEL_CARDS" + ] + } + }, + "ParamAccountIsOwned": { + "name": "is-owned", + "in": "query", + "description": "Filters accounts based on whether they are owned by the authorised customer. True for owned accounts, false for unowned accounts and absent for all accounts", + "schema": { + "type": "boolean", + "x-cds-type": "Boolean" + }, + "x-cds-type": "Boolean" + }, + "ParamPage": { + "name": "page", + "in": "query", + "description": "Page of results to request (standard pagination)", + "schema": { + "type": "integer", + "default": 1, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + "ParamPageSize": { + "name": "page-size", + "in": "query", + "description": "Page size to request. Default is 25 (standard pagination)", + "schema": { + "type": "integer", + "default": 25, + "x-cds-type": "PositiveInteger" + }, + "x-cds-type": "PositiveInteger" + }, + "ParamTransactionNewestTime": { + "name": "newest-time", + "in": "query", + "description": "Constrain the transaction history request to transactions with effective time at or before this date/time. If absent defaults to today. Format is aligned to DateTimeString common type", + "schema": { + "type": "string", + "x-cds-type": "DateTimeString" + }, + "x-cds-type": "DateTimeString" + }, + "ParamTransactionOldestTime": { + "name": "oldest-time", + "in": "query", + "description": "Constrain the transaction history request to transactions with effective time at or after this date/time. If absent defaults to newest-time minus 90 days. Format is aligned to DateTimeString common type", + "schema": { + "type": "string", + "x-cds-type": "DateTimeString" + }, + "x-cds-type": "DateTimeString" + }, + "ParamTransactionMinAmount": { + "name": "min-amount", + "in": "query", + "description": "Filter transactions to only transactions with amounts higher than or equal to this amount", + "schema": { + "type": "string", + "x-cds-type": "AmountString" + }, + "x-cds-type": "AmountString" + }, + "ParamTransactionMaxAmount": { + "name": "max-amount", + "in": "query", + "description": "Filter transactions to only transactions with amounts less than or equal to this amount", + "schema": { + "type": "string", + "x-cds-type": "AmountString" + }, + "x-cds-type": "AmountString" + }, + "ParamTransactionText": { + "name": "text", + "in": "query", + "description": "Filter transactions to only transactions where this string value is found as a substring of either the reference or description fields. Format is arbitrary ASCII string. This parameter is optionally implemented by data holders. If it is not implemented then a response should be provided as normal without text filtering applied and an additional boolean field named isQueryParamUnsupported should be included in the meta object and set to true (whether the text parameter is supplied or not)", + "schema": { + "type": "string" + } + } + } + } +} diff --git a/swagger-gen/create_markdown.sh b/swagger-gen/create_markdown.sh index f953fbf7..dd207946 100755 --- a/swagger-gen/create_markdown.sh +++ b/swagger-gen/create_markdown.sh @@ -13,6 +13,7 @@ echo "*** Generate cds_banking.md" diff -w cds_banking.md ../slate/source/includes/cds_banking.md > diff_banking.txt + echo "*** Generate cds_banking_non_bank_lending.md" { node ./widdershins-cdr/widdershins.js --environment ./widdershins-cdr/cdr_widdershins.json --search false --language_tabs 'http:HTTP' 'javascript--nodejs:Javascript' --summary api/cds_banking_non_bank_lending.json -o cds_banking_non_bank_lending.md >> create-markdown-log.txt @@ -21,6 +22,14 @@ echo "*** Generate cds_banking_non_bank_lending.md" diff -w cds_banking_non_bank_lending.md ../slate/source/includes/cds_banking_non_bank_lending.md > diff_banking_non_bank_lending.txt +echo "*** Generate cds_banking_dp306.md" +{ + node ./widdershins-cdr/widdershins.js --environment ./widdershins-cdr/cdr_widdershins.json --search false --language_tabs 'http:HTTP' 'javascript--nodejs:Javascript' --summary api/cds_banking_dp306.json -o cds_banking_dp306.md >> create-markdown-log.txt +} >> create-markdown-log.txt 2>&1 + +diff -w cds_banking_dp306.md ../slate/source/includes/cds_banking_dp306.md > diff_banking_dp306.txt + + echo "*** Generate cds_energy.md" { node ./widdershins-cdr/widdershins.js --environment ./widdershins-cdr/cdr_widdershins.json --search false --language_tabs 'http:HTTP' 'javascript--nodejs:Javascript' --summary api/cds_energy.json -o cds_energy.md >> create-markdown-log.txt @@ -28,6 +37,7 @@ echo "*** Generate cds_energy.md" diff -w cds_energy.md ../slate/source/includes/cds_energy.md > diff_energy.txt + echo "*** Generate cds_energy_sdh.md" { node ./widdershins-cdr/widdershins.js --environment ./widdershins-cdr/cdr_widdershins.json --search false --language_tabs 'http:HTTP' 'javascript--nodejs:Javascript' --summary api/cds_energy_sdh.json -o cds_energy_sdh.md >> create-markdown-log.txt @@ -35,6 +45,7 @@ echo "*** Generate cds_energy_sdh.md" diff -w cds_energy_sdh.md ../slate/source/includes/cds_energy_sdh.md > diff_energy_sdh.txt + echo "*** Generate cds_telco.md" { node ./widdershins-cdr/widdershins.js --environment ./widdershins-cdr/cdr_widdershins.json --search false --language_tabs 'http:HTTP' 'javascript--nodejs:Javascript' --summary api/cds_telco.json -o cds_telco.md >> create-markdown-log.txt @@ -42,6 +53,7 @@ echo "*** Generate cds_telco.md" diff -w cds_telco.md ../slate/source/includes/cds_telco.md > diff_telco.txt + echo "*** Generate cds_common.md" { node ./widdershins-cdr/widdershins.js --environment ./widdershins-cdr/cdr_widdershins.json --search false --language_tabs 'http:HTTP' 'javascript--nodejs:Javascript' --summary api/cds_common.json -o cds_common.md >> create-markdown-log.txt diff --git a/swagger-gen/generate_json.sh b/swagger-gen/generate_json.sh index 199e8195..9339d31b 100755 --- a/swagger-gen/generate_json.sh +++ b/swagger-gen/generate_json.sh @@ -3,6 +3,7 @@ set -o errexit #abort if any command fails # format ./oas_generate.sh api/cds_banking.json openapi json ../slate/source/includes/swagger ./oas_generate.sh api/cds_banking_non_bank_lending.json openapi json ../slate/source/includes/swagger +./oas_generate.sh api/cds_banking_dp306.json openapi json ../slate/source/includes/swagger ./oas_generate.sh api/cds_energy.json openapi json ../slate/source/includes/swagger ./oas_generate.sh api/cds_energy_sdh.json openapi json ../slate/source/includes/swagger ./oas_generate.sh api/cds_common.json openapi json ../slate/source/includes/swagger diff --git a/swagger-gen/generate_yaml.sh b/swagger-gen/generate_yaml.sh index cdfafa0a..feb6dca9 100755 --- a/swagger-gen/generate_yaml.sh +++ b/swagger-gen/generate_yaml.sh @@ -3,6 +3,7 @@ set -o errexit #abort if any command fails # format ./oas_generate.sh api/cds_banking.json openapi-yaml yaml ../slate/source/includes/swagger ./oas_generate.sh api/cds_banking_non_bank_lending.json openapi-yaml yaml ../slate/source/includes/swagger +./oas_generate.sh api/cds_banking_dp306.json openapi-yaml yaml ../slate/source/includes/swagger ./oas_generate.sh api/cds_energy.json openapi-yaml yaml ../slate/source/includes/swagger ./oas_generate.sh api/cds_energy_sdh.json openapi-yaml yaml ../slate/source/includes/swagger ./oas_generate.sh api/cds_common.json openapi-yaml yaml ../slate/source/includes/swagger diff --git a/swagger-gen/publish_markdown.sh b/swagger-gen/publish_markdown.sh index 48195e57..ab358403 100755 --- a/swagger-gen/publish_markdown.sh +++ b/swagger-gen/publish_markdown.sh @@ -4,6 +4,7 @@ echo "*** Publishing Markdown ***" cp cds_banking.md ../slate/source/includes/cds_banking.md cp cds_banking_non_bank_lending.md ../slate/source/includes/cds_banking_non_bank_lending.md +cp cds_banking_dp306.md ../slate/source/includes/cds_banking_dp306.md cp cds_energy.md ../slate/source/includes/cds_energy.md cp cds_energy_sdh.md ../slate/source/includes/cds_energy_sdh.md cp cds_common.md ../slate/source/includes/cds_common.md diff --git a/swagger-gen/widdershins-cdr/common.js b/swagger-gen/widdershins-cdr/common.js index 6ac5870c..1591a7f9 100644 --- a/swagger-gen/widdershins-cdr/common.js +++ b/swagger-gen/widdershins-cdr/common.js @@ -408,6 +408,12 @@ function schemaToArray(schema,offset,options,data) { if (typeof schema['x-cds-type'] === 'string') { entry.cdrType = '[' + schema['x-cds-type'] +'](#common-field-types)'; } + if (schema.enum) { + entry.cdrType = '[Enum](#common-field-types)'; + } + if (schema.items && schema.items.enum) { + entry.cdrType = '[[Enum](#common-field-types)]'; + } }); return container; }