NatWest Group Balances API

The Balances API from NatWest Group — 2 operation(s) for balances.

OpenAPI Specification

natwest-balances-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Account and Transaction API Specification Account Access Balances API
  description: Swagger for Account and Transaction API Specification
  termsOfService: https://www.openbanking.org.uk/terms
  contact:
    name: Service Desk
    email: ServiceDesk@openbanking.org.uk
  license:
    name: open-licence
    url: https://www.openbanking.org.uk/open-licence
  version: 3.1.11
servers:
- url: /open-banking/v3.1/aisp
tags:
- name: Balances
paths:
  /accounts/{AccountId}/balances:
    get:
      tags:
      - Balances
      summary: Get Balances
      operationId: GetAccountsAccountIdBalances
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        200:
          $ref: '#/components/responses/200AccountsAccountIdBalancesRead'
        400:
          $ref: '#/components/responses/400Error'
        401:
          $ref: '#/components/responses/401Error'
        403:
          $ref: '#/components/responses/403Error'
        405:
          $ref: '#/components/responses/405Error'
        406:
          $ref: '#/components/responses/406Error'
        429:
          $ref: '#/components/responses/429Error'
        500:
          $ref: '#/components/responses/500Error'
      security:
      - PSUOAuth2Security:
        - accounts
  /balances:
    get:
      tags:
      - Balances
      summary: Get Balances
      operationId: GetBalances
      parameters:
      - $ref: '#/components/parameters/x-fapi-auth-date'
      - $ref: '#/components/parameters/x-fapi-customer-ip-address'
      - $ref: '#/components/parameters/x-fapi-interaction-id'
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/x-customer-user-agent'
      responses:
        200:
          $ref: '#/components/responses/200BalancesRead'
        400:
          $ref: '#/components/responses/400Error'
        401:
          $ref: '#/components/responses/401Error'
        403:
          $ref: '#/components/responses/403Error'
        404:
          $ref: '#/components/responses/404Error'
        405:
          $ref: '#/components/responses/405Error'
        406:
          $ref: '#/components/responses/406Error'
        429:
          $ref: '#/components/responses/429Error'
        500:
          $ref: '#/components/responses/500Error'
      security:
      - PSUOAuth2Security:
        - accounts
components:
  schemas:
    ISODateTime:
      description: "All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00"
      type: string
      format: date-time
    OBErrorResponse1:
      description: An array of detail error codes, and messages, and URLs to documentation to help remediation.
      type: object
      properties:
        Code:
          description: High level textual error code, to help categorize the errors.
          type: string
          minLength: 1
          maxLength: 40
        Id:
          description: A unique reference for the error instance, for audit purposes, in case of unknown/unclassified errors.
          type: string
          minLength: 1
          maxLength: 40
        Message:
          description: Brief Error message, e.g., 'There is something wrong with the request parameters provided'
          type: string
          minLength: 1
          maxLength: 500
        Errors:
          items:
            $ref: '#/components/schemas/OBError1'
          type: array
          minItems: 1
      required:
      - Code
      - Message
      - Errors
      additionalProperties: false
    OBCreditDebitCode_2:
      description: "Indicates whether the balance is a credit or a debit balance. \nUsage: A zero balance is considered to be a credit balance."
      type: string
      enum:
      - Credit
      - Debit
    Meta:
      title: MetaData
      type: object
      description: Meta Data relevant to the payload
      properties:
        TotalPages:
          type: integer
          format: int32
        FirstAvailableDateTime:
          $ref: '#/components/schemas/ISODateTime'
        LastAvailableDateTime:
          $ref: '#/components/schemas/ISODateTime'
      additionalProperties: false
    OBError1:
      type: object
      properties:
        ErrorCode:
          description: Low level textual error code, e.g., UK.OBIE.Field.Missing
          type: string
          x-namespaced-enum:
          - UK.OBIE.Field.Expected
          - UK.OBIE.Field.Invalid
          - UK.OBIE.Field.InvalidDate
          - UK.OBIE.Field.Missing
          - UK.OBIE.Field.Unexpected
          - UK.OBIE.Header.Invalid
          - UK.OBIE.Header.Missing
          - UK.OBIE.Reauthenticate
          - UK.OBIE.Resource.ConsentMismatch
          - UK.OBIE.Resource.InvalidConsentStatus
          - UK.OBIE.Resource.InvalidFormat
          - UK.OBIE.Resource.NotFound
          - UK.OBIE.Rules.AfterCutOffDateTime
          - UK.OBIE.Rules.DuplicateReference
          - UK.OBIE.Signature.Invalid
          - UK.OBIE.Signature.InvalidClaim
          - UK.OBIE.Signature.Malformed
          - UK.OBIE.Signature.Missing
          - UK.OBIE.Signature.MissingClaim
          - UK.OBIE.Signature.Unexpected
          - UK.OBIE.UnexpectedError
          - UK.OBIE.Unsupported.AccountIdentifier
          - UK.OBIE.Unsupported.AccountSecondaryIdentifier
          - UK.OBIE.Unsupported.Currency
          - UK.OBIE.Unsupported.Frequency
          - UK.OBIE.Unsupported.LocalInstrument
          - UK.OBIE.Unsupported.Scheme
        Message:
          description: 'A description of the error that occurred. e.g., ''A mandatory field isn''t supplied'' or ''RequestedExecutionDateTime must be in future''

            OBIE doesn''t standardise this field'
          type: string
          minLength: 1
          maxLength: 500
        Path:
          description: Recommended but optional reference to the JSON Path of the field with error, e.g., Data.Initiation.InstructedAmount.Currency
          type: string
          minLength: 1
          maxLength: 500
        Url:
          description: URL to help remediate the problem, or provide more information, or to API Reference, or help etc
          type: string
      required:
      - ErrorCode
      - Message
      additionalProperties: false
      minProperties: 1
    Links:
      type: object
      description: Links relevant to the payload
      properties:
        Self:
          type: string
          format: uri
        First:
          type: string
          format: uri
        Prev:
          type: string
          format: uri
        Next:
          type: string
          format: uri
        Last:
          type: string
          format: uri
      additionalProperties: false
      required:
      - Self
    OBActiveCurrencyAndAmount_SimpleType:
      description: A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.
      type: string
      pattern: ^\d{1,13}$|^\d{1,13}\.\d{1,5}$
    AccountId:
      description: A unique and immutable identifier used to identify the account resource. This identifier has no meaning to the account owner.
      type: string
      minLength: 1
      maxLength: 40
    OBBalanceType1Code:
      description: Balance type, in a coded form.
      type: string
      enum:
      - ClosingAvailable
      - ClosingBooked
      - ClosingCleared
      - Expected
      - ForwardAvailable
      - Information
      - InterimAvailable
      - InterimBooked
      - InterimCleared
      - OpeningAvailable
      - OpeningBooked
      - OpeningCleared
      - PreviouslyClosedBooked
    OBReadBalance1:
      type: object
      required:
      - Data
      properties:
        Data:
          type: object
          required:
          - Balance
          properties:
            Balance:
              type: array
              items:
                type: object
                description: Set of elements used to define the balance details.
                required:
                - AccountId
                - CreditDebitIndicator
                - Type
                - DateTime
                - Amount
                properties:
                  AccountId:
                    $ref: '#/components/schemas/AccountId'
                  CreditDebitIndicator:
                    $ref: '#/components/schemas/OBCreditDebitCode_2'
                  Type:
                    $ref: '#/components/schemas/OBBalanceType1Code'
                  DateTime:
                    description: "Indicates the date (and time) of the balance.All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00"
                    type: string
                    format: date-time
                  Amount:
                    type: object
                    required:
                    - Amount
                    - Currency
                    description: Amount of money of the cash balance.
                    properties:
                      Amount:
                        $ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
                      Currency:
                        $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_1'
                      SubType:
                        description: The amount in the domestic or base accounting currency. Default is Base Currency (BCUR) if not specified
                        type: string
                        enum:
                        - BaseCurrency
                        - LocalCurrency
                        default: BaseCurrency
                  CreditLine:
                    type: array
                    items:
                      type: object
                      description: Set of elements used to provide details on the credit line.
                      required:
                      - Included
                      properties:
                        Included:
                          description: 'Indicates whether or not the credit line is included in the balance of the account.

                            Usage: If not present, credit line is not included in the balance amount of the account.'
                          type: boolean
                        Type:
                          description: Limit type, in a coded form.
                          type: string
                          enum:
                          - Available
                          - Credit
                          - Emergency
                          - Pre-Agreed
                          - Temporary
                        Amount:
                          type: object
                          required:
                          - Amount
                          - Currency
                          description: Amount of money of the credit line.
                          properties:
                            Amount:
                              $ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
                            Currency:
                              $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_1'
                  LocalAmount:
                    type: object
                    required:
                    - Amount
                    - Currency
                    description: Optional component providing the equivalent of Amount in local currency. Default is Local Currency (LCUR) if not specified
                    properties:
                      Amount:
                        $ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
                      Currency:
                        $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_1'
                      SubType:
                        description: The amount in the local market currency for which the asset is held.
                        type: string
                        enum:
                        - BaseCurrency
                        - LocalCurrency
                        default: LocalCurrency
              minItems: 1
            TotalValue:
              type: object
              required:
              - Amount
              - Currency
              description: Combined sum of all Amounts in the accounts base currency
              properties:
                Amount:
                  $ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
                Currency:
                  $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode_1'
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
      additionalProperties: false
    ActiveOrHistoricCurrencyCode_1:
      description: A code allocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international standard ISO 4217 "Codes for the representation of currencies and funds".
      type: string
      pattern: ^[A-Z]{3,3}$
  parameters:
    x-fapi-auth-date:
      in: header
      name: x-fapi-auth-date
      required: false
      description: "The time when the PSU last logged in with the TPP. \nAll dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: \nSun, 10 Sep 2017 19:43:31 UTC"
      schema:
        type: string
        pattern: ^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4} \d{2}:\d{2}:\d{2} (GMT|UTC)$
    x-customer-user-agent:
      in: header
      name: x-customer-user-agent
      description: Indicates the user-agent that the PSU is using.
      required: false
      schema:
        type: string
    AccountId:
      name: AccountId
      in: path
      description: AccountId
      required: true
      schema:
        type: string
    Authorization:
      in: header
      name: Authorization
      required: true
      description: An Authorisation Token as per https://tools.ietf.org/html/rfc6750
      schema:
        type: string
    x-fapi-customer-ip-address:
      in: header
      name: x-fapi-customer-ip-address
      required: false
      description: The PSU's IP address if the PSU is currently logged in with the TPP.
      schema:
        type: string
    x-fapi-interaction-id:
      in: header
      name: x-fapi-interaction-id
      required: false
      description: An RFC4122 UID used as a correlation id.
      schema:
        type: string
  responses:
    400Error:
      description: Bad request
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/OBErrorResponse1'
        application/json:
          schema:
            $ref: '#/components/schemas/OBErrorResponse1'
        application/jose+jwe:
          schema:
            $ref: '#/components/schemas/OBErrorResponse1'
    500Error:
      description: Internal Server Error
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/OBErrorResponse1'
        application/json:
          schema:
            $ref: '#/components/schemas/OBErrorResponse1'
        application/jose+jwe:
          schema:
            $ref: '#/components/schemas/OBErrorResponse1'
    404Error:
      description: Not found
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
    406Error:
      description: Not Acceptable
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
    405Error:
      description: Method Not Allowed
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
    403Error:
      description: Forbidden
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/OBErrorResponse1'
        application/json:
          schema:
            $ref: '#/components/schemas/OBErrorResponse1'
        application/jose+jwe:
          schema:
            $ref: '#/components/schemas/OBErrorResponse1'
    200BalancesRead:
      description: Balances Read
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/OBReadBalance1'
        application/json:
          schema:
            $ref: '#/components/schemas/OBReadBalance1'
        application/jose+jwe:
          schema:
            $ref: '#/components/schemas/OBReadBalance1'
    401Error:
      description: Unauthorized
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
    200AccountsAccountIdBalancesRead:
      description: Balances Read
      headers:
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          required: true
          schema:
            type: string
      content:
        application/json; charset=utf-8:
          schema:
            $ref: '#/components/schemas/OBReadBalance1'
        application/json:
          schema:
            $ref: '#/components/schemas/OBReadBalance1'
        application/jose+jwe:
          schema:
            $ref: '#/components/schemas/OBReadBalance1'
    429Error:
      description: Too Many Requests
      headers:
        Retry-After:
          description: Number in seconds to wait
          schema:
            type: integer
        x-fapi-interaction-id:
          description: An RFC4122 UID used as a correlation id.
          schema:
            type: string
  securitySchemes:
    TPPOAuth2Security:
      type: oauth2
      description: TPP client credential authorisation flow with the ASPSP
      flows:
        clientCredentials:
          tokenUrl: https://authserver.example/token
          scopes:
            accounts: Ability to read Accounts information
    PSUOAuth2Security:
      type: oauth2
      description: OAuth flow, it is required when the PSU needs to perform SCA with the ASPSP when a TPP wants to access an ASPSP resource owned by the PSU
      flows:
        authorizationCode:
          authorizationUrl: https://authserver.example/authorization
          tokenUrl: https://authserver.example/token
          scopes:
            accounts: Ability to read Accounts information