openapi: 3.1.0 info: title: Veryfi OCR Any Documents W-9 Forms 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: W-9 Forms paths: /partner/w9s: post: operationId: processW9 summary: Process a W-9 Form description: Submit a W-9 tax form for OCR extraction including taxpayer information, TIN, business name, entity type, and certification details. tags: - W-9 Forms requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ProcessDocumentRequest' responses: '201': description: W-9 processed content: application/json: schema: $ref: '#/components/schemas/W9Form' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' get: operationId: listW9s summary: List All W-9 Forms description: Retrieve a list of previously processed W-9 forms. tags: - W-9 Forms responses: '200': description: List of W-9 forms content: application/json: schema: type: array items: $ref: '#/components/schemas/W9Form' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' /partner/w9s/{documentId}: get: operationId: getW9 summary: Get a W-9 Form description: Retrieve a specific processed W-9 form by ID. tags: - W-9 Forms parameters: - name: documentId in: path required: true schema: type: integer responses: '200': description: W-9 form details content: application/json: schema: $ref: '#/components/schemas/W9Form' '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: deleteW9 summary: Delete a W-9 Form description: Permanently delete a processed W-9 form. tags: - W-9 Forms 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 W9Form: type: object description: A processed W-9 request for taxpayer identification properties: id: type: integer taxpayer_name: type: string description: Legal name of taxpayer business_name: type: string description: Business or DBA name entity_type: type: string description: Federal tax classification entity type enum: - individual - c_corporation - s_corporation - partnership - trust - llc - other tin: type: string description: Taxpayer Identification Number (SSN or EIN) address: type: string description: Address of taxpayer city: type: string state: type: string zip_code: type: string exempt_payee_code: type: string description: Exempt payee code if applicable 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