Hevn Inc Banks API

The Banks API from Hevn Inc — 14 operation(s) for banks.

Operations 14

POST /api/v1/bank/{rail}/pre-approve Pre-approve a bank rail #
POST /api/v1/bank/{rail}/activate Activate a bank rail #
POST /api/v1/banks/payin/quote Get a pooled bank payin quote #
POST /api/v1/banks/payin/quote/submit Submit a pooled bank payin quote #
POST /api/v1/banks/payin/quote/{quote_id}/cancel Cancel a locally tracked bank payin quote #
POST /api/v1/banks/activate Activate multiple bank rails #
GET /api/v1/banks List all bank rails #
POST /api/v1/accounts/bank/{rail}/pre-approve Pre-approve a bank rail #
POST /api/v1/accounts/bank/{rail}/activate Activate a bank rail #
POST /api/v1/accounts/banks/payin/quote Get a pooled bank payin quote #
POST /api/v1/accounts/banks/payin/quote/submit Submit a pooled bank payin quote #
POST /api/v1/accounts/banks/payin/quote/{quote_id}/cancel Cancel a locally tracked bank payin quote #
POST /api/v1/accounts/banks/activate Activate multiple bank rails #
GET /api/v1/accounts/banks List all bank rails #

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/hevn-inc-banks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

hevn-inc-banks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: HEVN 2FA Banks API
  description: Backend API for HEVN mobile neobank
  version: 0.1.2
servers:
- url: https://api.hevn.finance
  description: Production
tags:
- name: Banks
paths:
  /api/v1/bank/{rail}/pre-approve:
    post:
      tags:
      - Banks
      summary: Pre-approve a bank rail
      description: Read-only KYC info for the rail. Does not mutate Bank rows.
      operationId: pre_approve_bank_api_v1_bank__rail__pre_approve_post
      security:
      - HTTPBearer: []
      parameters:
      - name: rail
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/BankRail'
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankPreApproveResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/bank/{rail}/activate:
    post:
      tags:
      - Banks
      summary: Activate a bank rail
      description: Create or upsert a Bank row for the given rail. Idempotent.
      operationId: activate_bank_api_v1_bank__rail__activate_post
      security:
      - HTTPBearer: []
      parameters:
      - name: rail
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/BankRail'
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/banks/payin/quote:
    post:
      tags:
      - Banks
      summary: Get a pooled bank payin quote
      description: Create a Swipelux quote for paying into the user's custodial wallet via a pooled bank rail.
      operationId: create_bank_payin_quote_api_v1_banks_payin_quote_post
      security:
      - HTTPBearer: []
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BankPayinQuoteRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankPayinQuoteResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/banks/payin/quote/submit:
    post:
      tags:
      - Banks
      summary: Submit a pooled bank payin quote
      description: Execute a Swipelux payin quote and return payment instructions.
      operationId: submit_bank_payin_quote_api_v1_banks_payin_quote_submit_post
      security:
      - HTTPBearer: []
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BankPayinQuoteSubmitRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankPayinQuoteSubmitResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/banks/payin/quote/{quote_id}/cancel:
    post:
      tags:
      - Banks
      summary: Cancel a locally tracked bank payin quote
      description: Mark the local FiatTransfer created from a Swipelux payin quote as canceled.
      operationId: cancel_bank_payin_quote_api_v1_banks_payin_quote__quote_id__cancel_post
      security:
      - HTTPBearer: []
      parameters:
      - name: quote_id
        in: path
        required: true
        schema:
          type: string
          title: Quote Id
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankPayinQuoteCancelResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/banks/activate:
    post:
      tags:
      - Banks
      summary: Activate multiple bank rails
      description: Create or upsert Bank rows for multiple rails in one request. Returns a per-rail result so one pending or failed rail does not abort the batch.
      operationId: activate_banks_api_v1_banks_activate_post
      security:
      - HTTPBearer: []
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BankActivateRailsRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankActivateRailsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/banks:
    get:
      tags:
      - Banks
      summary: List all bank rails
      description: Return every supported bank rail. Rails the user has activated come from the Bank table (with status / iban_data); rails the user has not activated are returned from the static BANK_INFO registry with status=not_started and iban_data=None. If a rail's provider KYC is APPROVED but no ACTIVE Bank row exists yet, syncs lazily from Swipelux / Align before returning.
      operationId: list_banks_api_v1_banks_get
      security:
      - HTTPBearer: []
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BanksListResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/accounts/bank/{rail}/pre-approve:
    post:
      tags:
      - Banks
      summary: Pre-approve a bank rail
      description: Read-only KYC info for the rail. Does not mutate Bank rows.
      operationId: pre_approve_bank_package_alias_api_v1_accounts_bank__rail__pre_approve_post
      security:
      - HTTPBearer: []
      parameters:
      - name: rail
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/BankRail'
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankPreApproveResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/accounts/bank/{rail}/activate:
    post:
      tags:
      - Banks
      summary: Activate a bank rail
      description: Create or upsert a Bank row for the given rail. Idempotent.
      operationId: activate_bank_package_alias_api_v1_accounts_bank__rail__activate_post
      security:
      - HTTPBearer: []
      parameters:
      - name: rail
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/BankRail'
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/accounts/banks/payin/quote:
    post:
      tags:
      - Banks
      summary: Get a pooled bank payin quote
      description: Create a Swipelux quote for paying into the user's custodial wallet via a pooled bank rail.
      operationId: create_bank_payin_quote_package_alias_api_v1_accounts_banks_payin_quote_post
      security:
      - HTTPBearer: []
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BankPayinQuoteRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankPayinQuoteResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/accounts/banks/payin/quote/submit:
    post:
      tags:
      - Banks
      summary: Submit a pooled bank payin quote
      description: Execute a Swipelux payin quote and return payment instructions.
      operationId: submit_bank_payin_quote_package_alias_api_v1_accounts_banks_payin_quote_submit_post
      security:
      - HTTPBearer: []
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BankPayinQuoteSubmitRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankPayinQuoteSubmitResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/accounts/banks/payin/quote/{quote_id}/cancel:
    post:
      tags:
      - Banks
      summary: Cancel a locally tracked bank payin quote
      description: Mark the local FiatTransfer created from a Swipelux payin quote as canceled.
      operationId: cancel_bank_payin_quote_package_alias_api_v1_accounts_banks_payin_quote__quote_id__cancel_post
      security:
      - HTTPBearer: []
      parameters:
      - name: quote_id
        in: path
        required: true
        schema:
          type: string
          title: Quote Id
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankPayinQuoteCancelResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/accounts/banks/activate:
    post:
      tags:
      - Banks
      summary: Activate multiple bank rails
      description: Create or upsert Bank rows for multiple rails in one request. Returns a per-rail result so one pending or failed rail does not abort the batch.
      operationId: activate_banks_package_alias_api_v1_accounts_banks_activate_post
      security:
      - HTTPBearer: []
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BankActivateRailsRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankActivateRailsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/accounts/banks:
    get:
      tags:
      - Banks
      summary: List all bank rails
      description: Return every supported bank rail. Rails the user has activated come from the Bank table (with status / iban_data); rails the user has not activated are returned from the static BANK_INFO registry with status=not_started and iban_data=None. If a rail's provider KYC is APPROVED but no ACTIVE Bank row exists yet, syncs lazily from Swipelux / Align before returning.
      operationId: list_banks_package_alias_api_v1_accounts_banks_get
      security:
      - HTTPBearer: []
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BanksListResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    BankResponse:
      properties:
        rail:
          $ref: '#/components/schemas/BankRail'
        bankName:
          type: string
          title: Bankname
        country:
          type: string
          title: Country
        currency:
          type: string
          title: Currency
        type:
          $ref: '#/components/schemas/FiatPaymentType'
        method:
          $ref: '#/components/schemas/FiatPaymentType'
        methods:
          items:
            $ref: '#/components/schemas/FiatPaymentType'
          type: array
          title: Methods
        pooled:
          type: boolean
          title: Pooled
        compliance:
          type: integer
          title: Compliance
        bankIcon:
          type: string
          title: Bankicon
        depositFee:
          type: number
          title: Depositfee
        timeToOpen:
          $ref: '#/components/schemas/BankTimeToOpen'
        status:
          $ref: '#/components/schemas/IBANStatus'
        accountHolderBusinessName:
          anyOf:
          - type: string
          - type: 'null'
          title: Accountholderbusinessname
        accountHolderFirstName:
          anyOf:
          - type: string
          - type: 'null'
          title: Accountholderfirstname
        accountHolderLastName:
          anyOf:
          - type: string
          - type: 'null'
          title: Accountholderlastname
        ibanData:
          anyOf:
          - $ref: '#/components/schemas/IBANAccountDetails-Output'
          - $ref: '#/components/schemas/USExternalAccountDetails-Output'
          - $ref: '#/components/schemas/SwiftAccountDetails-Output'
          - type: 'null'
          title: Ibandata
        id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Id
        externalAccountId:
          anyOf:
          - type: string
          - type: 'null'
          title: Externalaccountid
        createdAt:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Createdat
      type: object
      required:
      - rail
      - bankName
      - country
      - currency
      - type
      - method
      - methods
      - pooled
      - compliance
      - bankIcon
      - depositFee
      - timeToOpen
      - status
      title: BankResponse
      description: 'Bank row as returned to clients.


        Merges static rail metadata (from BANK_INFO) with per-user state. For rails

        the user hasn''t activated yet, ``id`` / ``external_account_id`` / ``created_at``

        are ``None`` and ``status`` is ``not_started``.'
    BankActivateRailResult:
      properties:
        rail:
          $ref: '#/components/schemas/BankRail'
        ok:
          type: boolean
          title: Ok
        bank:
          anyOf:
          - $ref: '#/components/schemas/BankResponse'
          - type: 'null'
        error:
          anyOf:
          - $ref: '#/components/schemas/BankActivateRailError'
          - type: 'null'
      type: object
      required:
      - rail
      - ok
      title: BankActivateRailResult
      description: Per-rail bulk activation result.
    BankRequestedRailSettings:
      properties:
        pooled:
          type: boolean
          title: Pooled
          default: false
        named:
          type: boolean
          title: Named
          default: false
      type: object
      title: BankRequestedRailSettings
      description: User interest in a bank rail group.
    UserAddress:
      properties:
        streetAddress:
          anyOf:
          - type: string
          - type: 'null'
          title: Streetaddress
        addressLine2:
          anyOf:
          - type: string
          - type: 'null'
          title: Addressline2
        city:
          anyOf:
          - type: string
          - type: 'null'
          title: City
        state:
          anyOf:
          - type: string
          - type: 'null'
          title: State
        country:
          anyOf:
          - $ref: '#/components/schemas/CountryCode'
          - type: 'null'
        zip:
          anyOf:
          - type: string
          - type: 'null'
          title: Zip
      type: object
      title: UserAddress
      description: 'Address schema for user.


        Canonical field names: street_address, address_line_2, city, state, country, zip.

        Accepts legacy Align/IBAN field names (street_line_1, street_line_2, postal_code)

        for backward compatibility with existing JSONB data.'
    BankPreApproveResponse:
      properties:
        kycUrl:
          anyOf:
          - type: string
          - type: 'null'
          title: Kycurl
        kycStatus:
          $ref: '#/components/schemas/KycStatus'
          default: not_started
        requirePhoneNumber:
          type: boolean
          title: Requirephonenumber
          default: false
        requireAddress:
          type: boolean
          title: Requireaddress
          default: false
        requireKyb:
          type: boolean
          title: Requirekyb
          default: false
      type: object
      title: BankPreApproveResponse
      description: Read-only KYC info for a rail. Does not mutate Bank rows.
    BankActivateRailsRequest:
      properties:
        rails:
          items:
            $ref: '#/components/schemas/BankRail'
          type: array
          title: Rails
      type: object
      required:
      - rails
      title: BankActivateRailsRequest
      description: Bulk bank activation request.
    FiatPaymentType:
      type: string
      enum:
      - sepa
      - swift
      - ach
      - uaefts
      - fedwire
      title: FiatPaymentType
      description: 'Canonical fiat payment rail used for ``account_type`` discrimination,

        bank-rail methods, and contact/transaction type alignment.'
    BankRequestedRails:
      properties:
        us:
          $ref: '#/components/schemas/BankRequestedRailSettings'
        swift:
          $ref: '#/components/schemas/BankRequestedRailSettings'
        eu:
          $ref: '#/components/schemas/BankRequestedRailSettings'
        uae:
          $ref: '#/components/schemas/BankRequestedRailSettings'
      type: object
      title: BankRequestedRails
      description: Rails the user is interested in opening.
    BanksListResponse:
      properties:
        banks:
          items:
            $ref: '#/components/schemas/BankResponse'
          type: array
          title: Banks
        allOptions:
          items:
            $ref: '#/components/schemas/BankResponse'
          type: array
          title: Alloptions
        rails:
          $ref: '#/components/schemas/BankRequestedRails'
      type: object
      required:
      - banks
      - rails
      title: BanksListResponse
      description: List bank rails plus user's requested rail preferences.
    BankPayinQuoteCancelResponse:
      properties:
        transferId:
          type: string
          format: uuid
          title: Transferid
        quoteId:
          type: string
          title: Quoteid
        status:
          type: string
          title: Status
      type: object
      required:
      - transferId
      - quoteId
      - status
      title: BankPayinQuoteCancelResponse
      description: Response after canceling a locally tracked bank payin quote.
    BankPayinQuoteSubmitRequest:
      properties:
        quoteId:
          type: string
          title: Quoteid
      type: object
      required:
      - quoteId
      title: BankPayinQuoteSubmitRequest
      description: Submit a previously created Swipelux bank payin quote.
    CountryCode:
      type: string
      enum:
      - AF
      - AX
      - AL
      - DZ
      - AS
      - AD
      - AO
      - AI
      - AQ
      - AG
      - AR
      - AM
      - AW
      - AU
      - AT
      - AZ
      - BS
      - BH
      - BD
      - BB
      - BY
      - BE
      - BZ
      - BJ
      - BM
      - BT
      - BO
      - BQ
      - BA
      - BW
      - BV
      - BR
      - IO
      - BN
      - BG
      - BF
      - BI
      - CV
      - KH
      - CM
      - CA
      - KY
      - CF
      - TD
      - CL
      - CN
      - CX
      - CC
      - CO
      - KM
      - CG
      - CD
      - CK
      - CR
      - CI
      - HR
      - CU
      - CW
      - CY
      - CZ
      - DK
      - DJ
      - DM
      - DO
      - EC
      - EG
      - SV
      - GQ
      - ER
      - EE
      - SZ
      - ET
      - FK
      - FO
      - FJ
      - FI
      - FR
      - GF
      - PF
      - TF
      - GA
      - GM
      - GE
      - DE
      - GH
      - GI
      - GR
      - GL
      - GD
      - GP
      - GU
      - GT
      - GG
      - GN
      - GW
      - GY
      - HT
      - HM
      - VA
      - HN
      - HK
      - HU
      - IS
      - IN
      - ID
      - IR
      - IQ
      - IE
      - IM
      - IL
      - IT
      - JM
      - JP
      - JE
      - JO
      - KZ
      - KE
      - KI
      - KP
      - KR
      - KW
      - KG
      - LA
      - LV
      - LB
      - LS
      - LR
      - LY
      - LI
      - LT
      - LU
      - MO
      - MG
      - MW
      - MY
      - MV
      - ML
      - MT
      - MH
      - MQ
      - MR
      - MU
      - YT
      - MX
      - FM
      - MD
      - MC
      - MN
      - ME
      - MS
      - MA
      - MZ
      - MM
      - NA
      - NR
      - NP
      - NL
      - NC
      - NZ
      - NI
      - NE
      - NG
      - NU
      - NF
      - MK
      - MP
      - 'NO'
      - OM
      - PK
      - PW
      - PS
      - PA
      - PG
      - PY
      - PE
      - PH
      - PN
      - PL
      - PT
      - PR
      - QA
      - RE
      - RO
      - RU
      - RW
      - BL
      - SH
      - KN
      - LC
      - MF
      - PM
      - VC
      - WS
      - SM
      - ST
      - SA
      - SN
      - RS
      - SC
      - SL
      - SG
      - SX
      - SK
      - SI
      - SB
      - SO
      - ZA
      - GS
      - SS
      - ES
      - LK
      - SD
      - SR
      - SJ
      - SE
      - CH
      - SY
      - TW
      - TJ
      - TZ
      - TH
      - TL
      - TG
      - TK
      - TO
      - TT
      - TN
      - TR
      - TM
      - TC
      - TV
      - UG
      - UA
      - AE
      - GB
      - US
      - UM
      - UY
      - UZ
      - VU
      - VE
      - VN
      - VG
      - VI
      - WF
      - EH
      - YE
      - ZM
      - ZW
      title: CountryCode
      description: ISO 3166-1 alpha-2 country codes.
    BankPayinQuoteRequest:
      properties:
        amount:
          anyOf:
          - type: number
            exclusiveMinimum: 0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
        bankAccountId:
          type: string
          format: uuid
          title: Bankaccountid
        memo:
          anyOf:
          - type: string
            maxLength: 500
          - type: 'null'
          title: Memo
      type: object
      required:
      - amount
      - bankAccountId
      title: BankPayinQuoteRequest
      description: Request a Swipelux payin quote for a pooled bank rail.
    SwiftAccountDetails-Output:
      properties:
        bankName:
          type: string
          title: Bankname
        bankAddress:
          anyOf:
          - type: string
          - type: 'null'
          title: Bankaddress
        currency:
          anyOf:
          - type: string
          - type: 'null'
          title: Currency
        accountHolderType:
          $ref: '#/components/schemas/AlignAccountHolderType'
        accountHolderFirstName:
          anyOf:
          - type: string
          - type: 'null'
          title: Accountholderfirstname
        accountHolderLastName:
          anyOf:
          - type: string
          - type: 'null'
          title: Accountholderlastname
        accountHolderBusinessName:
          anyOf:
          - type: string
          - type: 'null'
          title: Accountholderbusinessname
        accountHolderAddress:
          anyOf:
          - $ref: '#/components/schemas/UserAddress'
          - type: 'null'
        relationship:
          anyOf:
          - $ref: '#/components/schemas/app__schemas__base__ContactRelationship'
          - type: 'null'
        paymentReference:
          anyOf:
          - type: string
          - type: 'null'
          title: Paymentreference
        accountType:
          type: string
          const: swift
          title: Accounttype
          default: swift
        swift:
          $ref: '#/components/schemas/SwiftDetails'
        beneficiaryName:
          anyOf:
          - type: string
          - type: 'null'
          title: Beneficiaryname
          description: Frontend-only alias derived from account holder fields.
          readOnly: true
      type: object
      required:
      - bankName
      - accountHolderType
      - swift
      - beneficiaryName
      title: SwiftAccountDetails
      description: SWIFT (international wire) external account.
    IBANStatus:
      type: string
      enum:
      - not_started
      - requested
      - document_requested
      - approved
      - pending_kyc
      - pending
      - active
      - hidden
      - frozen
      - closed
      - rejected
      title: IBANStatus
      description: 'IBAN account status.


        State machine:

        ``not_started`` → ``requested`` → ``document_requested`` → ``approved`` → ``pending`` → ``active``


        - ``not_started``       — default for every rail until the user opts in.

        - ``requested``         — user asked for this rail via /pre-approve; awaiting KYC.

        - ``document_requested``— admin asked the user for more documents (KYB).

        - ``approved``          — KYB passed, account ready to be created at provider.

        - ``pending_kyc``       — provider rejected creation until KYC is approved.

        - ``pending``           — provider accepted/created the account, waiting.

        - ``active``            — real bank details are attached to the row.

        - ``frozen`` / ``closed``— terminal/blocked states.'
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    BankPayinQuoteSubmitResponse:
      properties:
        quoteId:
          type: string
          title: Quoteid
        bankAccountId:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Bankaccountid
        resource:
          anyOf:
          - type: string
          - type: 'null'
          title: Resource
        recipientDetails:
          anyOf:
          - $ref: '#/components/schemas/IBANAccountDetails-Output'
          - $ref: '#/components/schemas/USExternalAccountDetails-Output'
          - $ref: '#/components/schemas/SwiftAccountDetails-Output'
          - type: 'null'
          title: Recipientdetails
      type: object
      required:
      - quoteId
      title: BankPayinQuoteSubmitResponse
      description: Swipelux payin instructions returned after quote submit.
    BankActivateRailsResponse:
      properties:
        results:
          items:
            $ref: '#/components/schemas/BankActivateRailResult'
          type: array
          title: Results
      type: object
      required:
      - results
      title: BankActivateRailsResponse
      description: Bulk bank activation response.
    SwiftDetails:
      properties:
        accountNumber:
          type: string
          title: Accountnumber
        routingNumber:
          anyOf:
          - type: string
          - type: 'null'
          title: Routingnumber
        bic:
          type: string
          title: Bic
      type: object
      required:
      - accountNumber
      - bic
      title: SwiftDetails
      description: SWIFT (international wire) account details.
    IBANAccountDetails-Output:
      properties:
        bankName:
          type: string
          title: Bankname
        bankAddress:
          anyOf:
          - type: string
          - type: 'null'
          title: Bankaddress
        currency:
          anyOf:
          - type: string
          - type: 'null'
          title: Currency
        accountHolderType:
          $ref: '#/components/schemas/AlignAccountHolderType'
        accountHolderFirstName:
          anyOf:
          - type: string
          - type: 'null'
          title: Accountholderfirstname
        accountHolderLastName:
          anyOf:
          - type: string
          - type: 'null'
          title: Accountholderlastname
        accountHolderBusinessName:
          anyOf:
          - type: string
          - ty

# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/hevn-inc/refs/heads/main/openapi/hevn-inc-banks-api-openapi.yml