National Australia Bank Bank Account Validation API

The Visa Bank Account Validation Service is a new standalone product designed to validate customer's routing and bank account number combination for ACH transactions. Merchant's can use this standalone product to validate their customer's account prior to processing an ACH transaction against the customer's account to comply with Nacha's account validation mandate for Web-debit transactions.

Operations 1

POST /bavs/v1/account-validations Visa Bank Account Validation Service #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/national-australia-bank:national-australia-bank-bankaccountvalidation-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

national-australia-bank-bankaccountvalidation-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html
  version: 0.0.1
  title: CyberSource Merged Spec Bank Account Validation API
servers:
- url: https://apitest.cybersource.com/
tags:
- name: bankAccountValidation
  description: The Visa Bank Account Validation Service is a new standalone product designed to validate customer's routing and bank account number combination for ACH transactions. Merchant's can use this standalone product to validate their customer's account prior to processing an ACH transaction against the customer's account to comply with Nacha's account validation mandate for Web-debit transactions.
paths:
  /bavs/v1/account-validations:
    post:
      summary: Visa Bank Account Validation Service
      description: The Visa Bank Account Validation Service is a new standalone product designed to validate customer's routing and bank account number combination for ACH transactions. Merchant's can use this standalone product to validate their customer's account prior to processing an ACH transaction against the customer's account to comply with Nacha's account validation mandate for Web-debit transactions.
      tags:
      - bankAccountValidation
      operationId: bankAccountValidationRequest
      responses:
        '200':
          description: Successful response.
          content:
            application/json;charset=utf-8:
              schema:
                type: object
                properties:
                  clientReferenceInformation:
                    type: object
                    properties:
                      code:
                        type: string
                        description: Client reference code
                        example: TC50171_3
                  requestId:
                    type: string
                    description: Request Id sent as part of the request.
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC.


                      Format: `YYYY-MM-DDThhmmssZ`, where:

                      - `T`:  Separates the date and the time

                      - `Z`:  Indicates Coordinated Universal Time (UTC), also known as Greenwich Mean Time (GMT)


                      Example:  `2020-01-11T224757Z`

                      equals January 11, 2020, at 22:47:57 (10:47:57 p.m.)

                      '
                  bankAccountValidation:
                    type: object
                    properties:
                      rawValidationCode:
                        type: integer
                        description: "Raw Validation Codes for routing number and account number\n\n    Possible values:\n    • -1: Unable to perform validation/Unknown error\n    • -2: Service Unavailable\n    • 12 to 16: Validation results\n"
                      resultCode:
                        type: integer
                        description: "Result codes for account number and routing number\n\n    Possible values: 00, 04, 98, 99\n"
                      resultMessage:
                        type: string
        '400':
          description: Bad Request
          headers:
            v-c-correlationid:
              description: Unique identifier for this request
              schema:
                type: string
          content:
            application/json;charset=utf-8:
              schema:
                type: object
                properties:
                  submitTimeUtc:
                    type: string
                    description: 'Time verification was requested


                      Format: `YYYY-MM-DDThhmmssZ`, where:

                      - `T`:  Separates the date and the time

                      - `Z`:  Indicates Coordinated Universal Time (UTC), also known as Greenwich Mean Time (GMT)


                      Example:  `2020-01-11T224757Z`

                      equals January 11, 2020, at 22:47:57 (10:47:57 p.m.)

                      '
                  status:
                    type: string
                    description: "Possible values:\n  - `INVALID_REQUEST`\n"
                  message:
                    type: string
                    description: The detail message related to the status and reason
                  reason:
                    type: string
                    description: "The reason of the status.\n\nPossible values:\n  - `INVALID_REQUEST`\n"
                  details:
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          description: 'This is the flattened JSON object field name/path that is either missing or invalid.

                            '
                        reason:
                          type: string
                          description: "Possible reasons for the error.\n\nPossible values:\n  - `MISSING_FIELD`\n  - `INVALID_DATA`\n"
        '403':
          description: Authorization failure.
          headers:
            v-c-correlationid:
              description: Unique identifier for this request
              schema:
                type: string
          content:
            application/json;charset=utf-8:
              schema:
                type: object
                properties:
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC.


                      Format: `YYYY-MM-DDThhmmssZ`, where:

                      - `T`:  Separates the date and the time

                      - `Z`:  Indicates Coordinated Universal Time (UTC), also known as Greenwich Mean Time (GMT)


                      Example:  `2020-01-11T224757Z`

                      equals January 11, 2020, at 22:47:57 (10:47:57 p.m.)

                      '
                  status:
                    type: string
                    description: "Possible values:\n  - `UNAUTHORIZED`\n"
                  reason:
                    type: string
                    description: "The reason of the status.\n\nPossible values:\n  - `UNAUTHORIZED`\n"
                  message:
                    type: string
                    description: 'The detail message related to the status and reason.

                      '
        '404':
          description: Resource Not Found
          headers:
            v-c-correlationid:
              description: Unique identifier for this request
              schema:
                type: string
          content:
            application/json;charset=utf-8:
              schema:
                type: object
                properties:
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`


                      Example 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the

                      time. The Z indicates UTC.

                      '
                  status:
                    type: string
                    description: The status of the submitted request.
                    enum:
                    - NOT_FOUND
                  reason:
                    type: string
                    description: The reason of the status.
                    enum:
                    - NOT_FOUND
                  message:
                    type: string
                    description: The detail message related to the status and reason listed above.
        '422':
          description: Unprocessable Entity.
          headers:
            v-c-correlationid:
              description: Unique identifier for this request
              schema:
                type: string
          content:
            application/json;charset=utf-8:
              schema:
                type: object
                properties:
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC.


                      Format: `YYYY-MM-DDThhmmssZ`, where:

                      - `T`:  Separates the date and the time

                      - `Z`:  Indicates Coordinated Universal Time (UTC), also known as Greenwich Mean Time (GMT)


                      Example:  `2020-01-11T224757Z`

                      equals January 11, 2020, at 22:47:57 (10:47:57 p.m.)

                      '
                  status:
                    type: string
                    description: "Possible values:\n  - `VALIDATION_ERROR`\n"
                  reason:
                    type: string
                    description: "The reason of the status.\n\nPossible values:\n  - `PRODUCT_INACTIVE`\n  - `INVALID_MERCHANT_CONFIGURATION`\n  - `PRODUCT_NOT_CONFIGURED`\n"
                  message:
                    type: string
                    description: 'The detail message related to the status and reason.

                      '
        '502':
          description: Internal Server error
          headers:
            v-c-correlationid:
              description: Unique identifier for this request
              schema:
                type: string
          content:
            application/json;charset=utf-8:
              schema:
                type: object
                properties:
                  submitTimeUtc:
                    type: string
                    description: 'Time verification was requested


                      Format: `YYYY-MM-DDThhmmssZ`, where:

                      - `T`:  Separates the date and the time

                      - `Z`:  Indicates Coordinated Universal Time (UTC), also known as Greenwich Mean Time (GMT)


                      Example:  `2020-01-11T224757Z`

                      equals January 11, 2020, at 22:47:57 (10:47:57 p.m.)

                      '
                  status:
                    type: string
                    description: "The status of the submitted transaction.\nPossible values:\n  - `SERVER_ERROR`\n"
                  message:
                    type: string
                    description: The detail message related to the status and reason
                  reason:
                    type: string
                    description: "The reason of the status.\n\nPossible values:\n  - `SYSTEM_ERROR`\n  - `SERVER_TIMEOUT`\n  - `SERVICE_TIMEOUT`\n"
      x-example:
        example0:
          summary: Bank Account Validation - Validated
          value:
            clientReferenceInformation:
              code: TC50171_100
            processingInformation:
              validationLevel: 1
            paymentInformation:
              bank:
                routingNumber: '041210163'
                account:
                  number: '99970'
          response0:
            clientReferenceInformation:
              code: TC50171_100
            requestId: '5805429916863232235535'
            submitTimeUtc: '2025-02-03T23:18:42Z'
            bankAccountValidation:
              rawValidationCode: 12
              resultCode: '00'
              resultMessage: Validated
          parentTag: Non-Tokenized
        example1:
          summary: Bank Account Validation - Not Validated
          value:
            clientReferenceInformation:
              code: TC50171_100
            processingInformation:
              validationLevel: 1
            paymentInformation:
              bank:
                routingNumber: '041210163'
                account:
                  number: '99941'
          response1:
            clientReferenceInformation:
              code: TC50171_100
            requestId: '5805429916863232235535'
            submitTimeUtc: '2025-02-03T23:19:35Z'
            bankAccountValidation:
              rawValidationCode: 16
              resultCode: '04'
              resultMessage: Not Validated
          parentTag: Non-Tokenized
        example2:
          summary: Bank Account Validation - Unable to perform validation
          value:
            clientReferenceInformation:
              code: TC50171_100
            processingInformation:
              validationLevel: 1
            paymentInformation:
              bank:
                routingNumber: '041210163'
                account:
                  number: '99950'
          response2:
            clientReferenceInformation:
              code: TC50171_100
            requestId: '5805429916863232235535'
            submitTimeUtc: '2025-02-03T23:21:17Z'
            bankAccountValidation:
              rawValidationCode: -1
              resultCode: '98'
              resultMessage: Unable to perform validation - No information found
          parentTag: Non-Tokenized
        example3:
          summary: Bank Account Validation - Service Unavailable
          value:
            clientReferenceInformation:
              code: TC50171_100
            processingInformation:
              validationLevel: 1
            paymentInformation:
              bank:
                routingNumber: '041210163'
                account:
                  number: '99980'
          response3:
            clientReferenceInformation:
              code: TC50171_100
            requestId: '5805429916863232235535'
            submitTimeUtc: '2025-02-03T23:21:54Z'
            bankAccountValidation:
              rawValidationCode: -2
              resultCode: '99'
              resultMessage: Service Unavailable
          parentTag: Non-Tokenized
        example4:
          summary: Bank Account Validation - Routing Number Starting with 0
          value:
            clientReferenceInformation:
              code: TC50171_100
            processingInformation:
              validationLevel: 1
            paymentInformation:
              bank:
                routingNumber: '011401533'
                account:
                  number: '99970'
          response4:
            clientReferenceInformation:
              code: TC50171_100
            requestId: '5805429916863232235536'
            submitTimeUtc: '2025-03-11T12:00:00Z'
            bankAccountValidation:
              rawValidationCode: 12
              resultCode: '00'
              resultMessage: Validated
          parentTag: Non-Tokenized
        example5:
          summary: Bank Account Validation - Customer Token
          value:
            clientReferenceInformation:
              code: TC50171_100
            processingInformation:
              validationLevel: 1
            paymentInformation:
              customer:
                id: 5946C4037A6F2193E063AF598E0A509D
          response5:
            clientReferenceInformation:
              code: TC50171_100
            requestId: '5805429916863232235537'
            submitTimeUtc: '2025-02-03T23:18:42Z'
            bankAccountValidation:
              rawValidationCode: 12
              resultCode: '00'
              resultMessage: Validated
          parentTag: Tokenized
        example6:
          summary: Bank Account Validation - Payment Instrument Token
          value:
            clientReferenceInformation:
              code: TC50171_100
            processingInformation:
              validationLevel: 1
            paymentInformation:
              paymentInstrument:
                id: 5946C4037A6E2193E063AF598E0A509D
          response6:
            clientReferenceInformation:
              code: TC50171_100
            requestId: '5805429916863232235538'
            submitTimeUtc: '2025-02-03T23:18:42Z'
            bankAccountValidation:
              rawValidationCode: 12
              resultCode: '00'
              resultMessage: Validated
          parentTag: Tokenized
        example7:
          summary: Bank Account Validation - Instrument Identifier Token
          value:
            clientReferenceInformation:
              code: TC50171_100
            processingInformation:
              validationLevel: 1
            paymentInformation:
              instrumentIdentifier:
                id: 5946C4037A6D2193E063AF598E0A509D
          response7:
            clientReferenceInformation:
              code: TC50171_100
            requestId: '5805429916863232235539'
            submitTimeUtc: '2025-02-03T23:18:42Z'
            bankAccountValidation:
              rawValidationCode: 12
              resultCode: '00'
              resultMessage: Validated
          parentTag: Tokenized
        example8:
          summary: Bank Account Validation - TMS Transient Token
          value:
            clientReferenceInformation:
              code: TC50171_100
            processingInformation:
              validationLevel: 1
            tokenInformation:
              jti: <Generated from Unified Checkout>
          response8:
            clientReferenceInformation:
              code: TC50171_100
            requestId: '5805429916863232235540'
            submitTimeUtc: '2025-02-03T23:18:42Z'
            bankAccountValidation:
              rawValidationCode: 12
              resultCode: '00'
              resultMessage: Validated
          parentTag: Tokenized
        example9:
          summary: Bank Account Validation - Flex Transient Token
          value:
            clientReferenceInformation:
              code: TC50171_100
            processingInformation:
              validationLevel: 1
            tokenInformation:
              transientTokenJwt: <Generated from Flex Microform>
          response9:
            clientReferenceInformation:
              code: TC50171_100
            requestId: '5805429916863232235541'
            submitTimeUtc: '2025-02-03T23:18:42Z'
            bankAccountValidation:
              rawValidationCode: 12
              resultCode: '00'
              resultMessage: Validated
          parentTag: Tokenized
      requestBody:
        content:
          application/json;charset=utf-8:
            schema:
              type: object
              required:
              - processingInformation
              - paymentInformation
              properties:
                clientReferenceInformation:
                  type: object
                  properties:
                    code:
                      type: string
                      description: Client reference code
                      example: TC50171_3
                processingInformation:
                  type: object
                  required:
                  - validationLevel
                  properties:
                    validationLevel:
                      type: integer
                      description: 'Enter 1 for routing and account number validation.

                        '
                paymentInformation:
                  type: object
                  description: 'Payment information for account validation. Either tokenized payment data or bank account details must be provided, but not both.

                    When token information is provided, the bank object becomes optional. Only one token type may be included per request.

                    '
                  properties:
                    customer:
                      type: object
                      properties:
                        id:
                          type: string
                          minLength: 1
                          maxLength: 32
                          description: Unique identifier for the Customer token. When this value is included in your request, the bank object becomes optional.
                          example: AB12C34D56E78F90
                    paymentInstrument:
                      type: object
                      properties:
                        id:
                          type: string
                          minLength: 1
                          maxLength: 32
                          description: Unique identifier for the Payment Instrument token. When this value is included in your request, the bank object becomes optional.
                          example: '7010000000000001234'
                    instrumentIdentifier:
                      type: object
                      properties:
                        id:
                          type: string
                          minLength: 12
                          maxLength: 32
                          description: Unique identifier for the Instrument Identifier token. When this value is included in your request, the bank object becomes optional.
                          example: '7010000000000001111'
                    bank:
                      type: object
                      required:
                      - routingNumber
                      - account
                      properties:
                        routingNumber:
                          type: string
                          minLength: 9
                          maxLength: 9
                          description: 'Bank routing number. This is also called the transit number.


                            Non-Negative String, containing only digits.

                            '
                          example: '123456789'
                        account:
                          type: object
                          required:
                          - number
                          properties:
                            number:
                              type: string
                              maxLength: 17
                              description: 'Account Number.


                                Non-Negative String, containing only digits.

                                '
                              example: '12345678901234577'
                tokenInformation:
                  type: object
                  description: Optional token information for BAVS detokenization. Only one token type may be provided.
                  properties:
                    jti:
                      type: string
                      maxLength: 64
                      description: TMS Transient Token for BAVS detokenization. A 64 hexadecimal character identifier representing captured payment credentials.
                      example: 1A2B3C4D5E6F7890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890
                    transientTokenJwt:
                      type: string
                      description: Flex API Transient Token encoded as JWT for BAVS detokenization. Contains encrypted bank account information from Flex microform or Unified Payment checkout.
                      example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        required: true