openapi: 3.0.1
info:
  title: payments_account-name-check API
  description: Merged OpenAPI spec for payments_account-name-check domain
  version: 1.0.0
servers:
- description: ''
  url: https://api.uat.btx.fr.banqup.com/payments/account-name-check
- description: ''
  url: https://api.uat.btx.eu.banqup.com/payments/account-name-check
paths:
  /api/v1/bankAccounts:verify:
    post:
      tags:
      - Bank Accounts
      summary: Checks bank account holder name
      description: Checks bank account holder name
      operationId: verify
      parameters:
      - name: X-Request-ID
        in: header
        description: Request ID, a unique identifier for the request. It must be valid
          and version 1, 3, 4, or 5. If not it will be replaced by an auto-generated
          one
        required: false
        schema:
          type: string
          description: Request ID, a unique identifier for the request. It must be
            valid and version 1, 3, 4, or 5. If not it will be replaced by an auto-generated
            one
          example: 123e4567-e89b-12d3-a456-426614174000
        example: 123e4567-e89b-12d3-a456-426614174000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VopRequest'
        required: true
      responses:
        '429':
          description: Rate limit 1000 RPS reached
        '500':
          description: Internal Server
        '504':
          description: Gateway Timeout
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VopResponse'
        '503':
          description: Service Unavailable
        '404':
          description: Not Found
        '401':
          description: Unauthorized
        '400':
          description: Bad request
        '422':
          description: Unprocessable entity
      security:
      - oauth2: []
components:
  schemas:
    AccountHolderRequest:
      required:
      - name
      type: object
      properties:
        name:
          type: string
          description: Name that will be used for name matching purpose; must have
            either name or given_name supplied
          example: Mark J.
      description: Account holder information for validation
    AccountRequest:
      required:
      - countryCode
      - identifier
      - scheme
      type: object
      properties:
        countryCode:
          pattern: ^[A-Z]{2}$
          type: string
          description: Alpha-2 country code based on ISO 3166
          example: BE
        identifier:
          type: string
          description: Bank account identifier
          example: BE84504754703434
        scheme:
          type: string
          description: Bank account scheme
          example: IBAN
          enum:
          - IBAN
          - BBAN
          - ANB
          - SE_BANKGIRO
          - SE_PLUSGIRO
        bank:
          $ref: '#/components/schemas/BankApi'
      description: Bank account information for validation
    BankApi:
      required:
      - identifier
      - scheme
      type: object
      properties:
        identifier:
          type: string
          description: Bank identifier where the account is held
          example: PANXBEB1XXX
        scheme:
          type: string
          description: Bank idenfier scheme
          example: BIC
          enum:
          - BIC
          - CODE
      example:
        identifier: PANXBEB1XXX
        scheme: BIC
    VopRequest:
      required:
      - account
      - accountHolder
      type: object
      properties:
        accountHolder:
          $ref: '#/components/schemas/AccountHolderRequest'
        account:
          $ref: '#/components/schemas/AccountRequest'
      description: Submit creditor information for validation
      example:
        accountHolder:
          name: Mark J.
        account:
          countryCode: BE
          identifier: BE84504754703434
          scheme: IBAN
    AccountHolderResponse:
      type: object
      properties:
        name:
          type: string
          example: Marc Janssen
      description: Information about the account holder as validated in the response.
        Only given in case of vopStatus equal to CLOSE_MATCH
    VopResponse:
      type: object
      properties:
        vopStatus:
          type: string
          description: "Enumeration representing the various statuses related to the
            Account Name Check response.\n"
          example: CLOSE_MATCH
          enum:
          - MATCH
          - CLOSE_MATCH
          - NO_MATCH
          - TIMEOUT
          - NOT_POSSIBLE
        vopStatusReason:
          type: string
          description: Enumeration representing the various reasons for a vopStatus
            equal to NOT_POSSIBLE.
          example: Counterparty bank cannot be reached to do a verification
          enum:
          - Counterparty bank could not verify account e.g. because it does not exist
            (anymore)
          - Matching not possible for the counterparty bank for any reason
          - Account structure invalid (e.g. length, check digits,...)
          - Counterparty bank cannot be reached to do a verification
          - Account is closed, dormant or blocked
          - Invalid BIC code or clearing system ID sent, or unable to look up data
            provider
          - Data provider could not complete name match given valid account details
          - Logic-based check failed (account structure)
          - The id number supplied is missing or invalid
          - Verification service unavailable
        accountHolder:
          $ref: '#/components/schemas/AccountHolderResponse'
        vopId:
          type: string
          description: To be included in payment data to shift the liability for the
            correctness of the account holder to the payment service provider.
          example: VOP-idwPmC1GhdFPP91W
        statusFromIpid:
          type: string
          writeOnly: true
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.uat.btx.fr.banqup.com/oauth2/client_credential/gettoken
          scopes:
            info: Scopes are endpoint-specific, see each endpoint for required scope.
        authorizationCode:
          authorizationUrl: https://api.uat.btx.fr.banqup.com/oauth2/auth
          tokenUrl: https://api.uat.btx.fr.banqup.com/oauth2/token
          scopes:
            info: Scopes are endpoint-specific, see each endpoint for required scope.
tags:
- name: Bank Accounts
  description: Operations related to bank account validation, such as verifying account
    details and retrieving validation results.
- name: Internal
  description: Do not use
security:
- oauth2: []
