openapi: 3.1.0 info: title: Veryfi OCR Any Documents 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: Documents paths: /partner/documents: post: operationId: processDocument summary: Process a Document description: Submit a document (receipt, invoice, bill, or other financial document) for AI-powered OCR extraction. Returns structured JSON with vendor details, line items, taxes, totals, and other captured fields. Supports file uploads, URLs, base64-encoded data, and S3 references. Optionally supports asynchronous processing via webhooks. tags: - Documents requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ProcessDocumentRequest' multipart/form-data: schema: $ref: '#/components/schemas/ProcessDocumentRequest' responses: '201': description: Document successfully processed content: application/json: schema: $ref: '#/components/schemas/Document' '400': description: Bad request - malformed or missing required fields content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Unauthorized - invalid credentials content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/Error' get: operationId: listDocuments summary: List All Documents description: Retrieve a paginated list of previously processed documents with optional filtering by date range, tags, and other criteria. tags: - Documents parameters: - name: created_date__gt in: query required: false description: Filter documents created after this date (format YYYY-MM-DD+HH:MM:SS) schema: type: string - name: created_date__lt in: query required: false description: Filter documents created before this date schema: type: string - name: page in: query required: false description: Page number for pagination schema: type: integer default: 1 - name: page_size in: query required: false description: Number of documents per page schema: type: integer default: 50 maximum: 100 responses: '200': description: List of documents content: application/json: schema: type: object properties: count: type: integer documents: type: array items: $ref: '#/components/schemas/Document' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' /partner/documents/{documentId}: get: operationId: getDocument summary: Get a Document description: Retrieve a previously processed document by its ID. tags: - Documents parameters: - name: documentId in: path required: true description: Unique document identifier schema: type: integer responses: '200': description: Document details content: application/json: schema: $ref: '#/components/schemas/Document' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Document not found content: application/json: schema: $ref: '#/components/schemas/Error' put: operationId: updateDocument summary: Update a Document description: Update metadata, tags, or category for a processed document. tags: - Documents parameters: - name: documentId in: path required: true description: Unique document identifier schema: type: integer requestBody: required: true content: application/json: schema: type: object properties: tags: type: array items: type: string description: Updated tags list category: type: string description: Updated category external_id: type: string description: External system reference ID responses: '200': description: Document updated content: application/json: schema: $ref: '#/components/schemas/Document' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Document not found content: application/json: schema: $ref: '#/components/schemas/Error' delete: operationId: deleteDocument summary: Delete a Document description: Permanently delete a processed document and its extracted data. tags: - Documents parameters: - name: documentId in: path required: true description: Unique document identifier schema: type: integer responses: '200': description: Document deleted successfully '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Document not found content: application/json: schema: $ref: '#/components/schemas/Error' components: schemas: Document: type: object description: A processed document with extracted data properties: id: type: integer description: Unique document ID external_id: type: string description: Customer-provided external identifier document_type: type: string description: Detected or specified document type vendor: type: object description: Vendor information extracted from the document properties: name: type: string address: type: string phone_number: type: string email: type: string date: type: string description: Document date due_date: type: string description: Payment due date (for invoices) invoice_number: type: string description: Invoice or receipt number total: type: number format: float description: Total amount subtotal: type: number format: float description: Subtotal before taxes tax: type: number format: float description: Total tax amount tip: type: number format: float description: Tip/gratuity amount currency_code: type: string description: ISO 4217 currency code line_items: type: array description: Extracted line items items: type: object properties: description: type: string quantity: type: number price: type: number total: type: number sku: type: string tax: type: number tags: type: array items: type: string description: User-defined tags created: type: string format: date-time description: Processing timestamp updated: type: string format: date-time description: Last update timestamp 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 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