Veryfi Bank Statements API

The Bank Statements API from Veryfi — 2 operation(s) for bank statements.

OpenAPI Specification

veryfi-bank-statements-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Veryfi OCR Any Documents Bank Statements API
  description: The Veryfi OCR API extracts structured data from financial documents including receipts, invoices, bank statements, checks, W-2s, W-8s, W-9s, business cards, contracts, and more. The API uses AI-powered OCR to capture line items, taxes, totals, barcodes, vendor details, and other financial data across 91 currencies and 38 languages with enterprise-grade accuracy.
  version: v8
  contact:
    name: Veryfi Support
    url: https://docs.veryfi.com/
    email: support@veryfi.com
  license:
    name: Proprietary
    url: https://www.veryfi.com/terms/
servers:
- url: https://api.veryfi.com/api/v8
  description: Veryfi OCR API v8
security:
- clientId: []
  apiKey: []
tags:
- name: Bank Statements
paths:
  /partner/bank-statements:
    post:
      operationId: processBankStatement
      summary: Process a Bank Statement
      description: Submit a bank statement for AI-powered data extraction. Returns structured transaction data, account information, balances, and metadata. Supports PDF, image formats, and multi-page documents.
      tags:
      - Bank Statements
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProcessDocumentRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ProcessDocumentRequest'
      responses:
        '201':
          description: Bank statement processed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankStatement'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    get:
      operationId: listBankStatements
      summary: List All Bank Statements
      description: Retrieve a list of previously processed bank statements.
      tags:
      - Bank Statements
      responses:
        '200':
          description: List of bank statements
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BankStatement'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /partner/bank-statements/{documentId}:
    get:
      operationId: getBankStatement
      summary: Get a Bank Statement
      description: Retrieve a specific processed bank statement by ID.
      tags:
      - Bank Statements
      parameters:
      - name: documentId
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Bank statement details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankStatement'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      operationId: deleteBankStatement
      summary: Delete a Bank Statement
      description: Permanently delete a processed bank statement.
      tags:
      - Bank Statements
      parameters:
      - name: documentId
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Deleted successfully
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      type: object
      description: API error response
      properties:
        status:
          type: integer
          description: HTTP status code
        error:
          type: string
          description: Error type
        message:
          type: string
          description: Human-readable error message
    ProcessDocumentRequest:
      type: object
      description: Request body for document processing operations
      properties:
        file_url:
          type: string
          format: uri
          description: Publicly accessible URL to the document
        file_urls:
          type: array
          items:
            type: string
            format: uri
          description: Multiple document URLs (for multi-page documents)
        file_data:
          type: string
          description: Base64-encoded document data
        file:
          type: string
          format: binary
          description: Binary file upload
        async:
          type: boolean
          default: false
          description: Enable asynchronous processing via webhook
        boost_mode:
          type: boolean
          default: false
          description: Skip enrichment for faster processing
        max_pages_to_process:
          type: integer
          default: 15
          maximum: 15
          description: Maximum pages to process
        bounding_boxes:
          type: boolean
          default: false
          description: Include coordinate data for extracted fields
        confidence_details:
          type: boolean
          default: false
          description: Include confidence scores for each extracted field
        external_id:
          type: string
          description: Custom identifier for the document in your system
        tags:
          type: array
          items:
            type: string
          description: Tags for document organization
        country:
          type: string
          description: Two-letter country code as currency hint
        parse_address:
          type: boolean
          description: Break address fields into individual components
    BankStatement:
      type: object
      description: A processed bank statement with extracted transaction data
      properties:
        id:
          type: integer
        account_number:
          type: string
          description: Bank account number
        routing_number:
          type: string
          description: Bank routing number
        account_holder:
          type: string
          description: Account holder name
        bank_name:
          type: string
          description: Bank or financial institution name
        statement_date:
          type: string
          description: Statement period date
        opening_balance:
          type: number
          format: float
        closing_balance:
          type: number
          format: float
        transactions:
          type: array
          items:
            type: object
            properties:
              date:
                type: string
              description:
                type: string
              amount:
                type: number
                format: float
              type:
                type: string
                enum:
                - credit
                - debit
              balance:
                type: number
                format: float
  securitySchemes:
    clientId:
      type: apiKey
      in: header
      name: CLIENT-ID
      description: Your Veryfi account client identifier
    apiKey:
      type: apiKey
      in: header
      name: AUTHORIZATION
      description: 'API key in format: ''apikey USERNAME:API_KEY'''
    requestSignature:
      type: apiKey
      in: header
      name: X-Veryfi-Request-Signature
      description: HMAC-SHA256 signature for request validation