Accounts Payable Automation: Turn Invoices Into Structured Data

InvoicesReceiptsPurchase ordersPacking slipsCredit memos

The problem

AP teams lose hours every week re-keying vendor names, invoice numbers, line items, and totals from PDFs and scans into accounting software. It's repetitive, error-prone, and it gets worse — not better — as invoice volume grows.

Generic OCR tools make this harder, not easier: they hand back a wall of raw text or loose key-value pairs, and you still have to write the code that turns that into "total = 4,125.60."

How Dokyumi solves it

Define an invoice schema once — vendor name, invoice number, dates, PO number, line items, total — or let AI infer it from a sample invoice. Dokyumi generates a dedicated API endpoint scoped to that schema.

Point your intake at it: forward invoices from an inbox rule, drop them in a watched folder, or call the endpoint directly from your AP tool. Every submission comes back as validated JSON with a confidence score per field, ready to post into your ledger.

Example schema and result

A real schema shape for accounts payable documents, and the JSON you get back from one extraction.

Schema — GET /api/v1/schemas

{
  "slug": "ap-invoice-parser",
  "name": "AP Invoice Parser",
  "description": "Extracts vendor, line items, and totals from vendor invoices and receipts",
  "ocr_mode": "standard",
  "fields": [
    {
      "key": "vendor_name",
      "type": "string",
      "required": true
    },
    {
      "key": "invoice_number",
      "type": "string",
      "required": true
    },
    {
      "key": "invoice_date",
      "type": "date",
      "required": true
    },
    {
      "key": "due_date",
      "type": "date",
      "required": false
    },
    {
      "key": "po_number",
      "type": "string",
      "required": false
    },
    {
      "key": "subtotal",
      "type": "currency",
      "required": false
    },
    {
      "key": "tax_amount",
      "type": "currency",
      "required": false
    },
    {
      "key": "total",
      "type": "currency",
      "required": true
    },
    {
      "key": "line_items",
      "type": "array",
      "required": false
    }
  ]
}

Result — POST /api/v1/extract

{
  "id": "ext_ap8k2n",
  "status": "completed",
  "schema": "ap-invoice-parser",
  "data": {
    "vendor_name": "Acme Supply Co.",
    "invoice_number": "INV-88213",
    "invoice_date": "2026-06-02",
    "due_date": "2026-07-02",
    "po_number": "PO-40021",
    "subtotal": 3820,
    "tax_amount": 305.6,
    "total": 4125.6,
    "line_items": "[ 3 items ]"
  },
  "confidence": {
    "vendor_name": 0.99,
    "invoice_number": 0.98,
    "total": 0.99,
    "po_number": 0.94
  },
  "meta": {
    "processing_time_ms": 1180,
    "page_count": 1,
    "ocr_cached": false
  }
}

How it works

1

Define your AP schema

Describe an invoice/receipt schema once, or let AI infer it from a sample document you upload.

2

Point your intake at the endpoint

Email-forward, watched upload folder, or call the API directly from your AP software.

3

Get validated JSON back

Vendor, line items, totals, and PO numbers — each with a per-field confidence score.

4

Push into your ledger

Use the API response or a webhook to post the extraction into your accounting system.

Accounts Payable FAQ

Does Dokyumi match invoices to purchase orders?+
Dokyumi extracts the PO number and any other fields you define — matching that number against your open PO list is logic you run on your side using the API response. There's no built-in PO-matching engine today.
Does it integrate directly with QuickBooks, NetSuite, or Bill.com?+
Not with a native pre-built connector. Every extraction is delivered as JSON via the API response or a webhook, so it's a straightforward custom integration into whatever AP or ERP system you already use.
Can it handle invoices from hundreds of different vendors?+
Yes — extraction is schema-first, not template-based. You define the fields you want, and the same endpoint works across vendor formats as long as those fields appear on the page.
What if an invoice is missing a field, like a PO number?+
It comes back empty and is flagged in the validation output so you know to check the source document — the rest of the extraction still completes.
Does resubmitting the same invoice cost extra?+
No. OCR results are cached by file hash, so re-processing an identical file skips the OCR step — faster and cheaper on repeat submissions.

Stop re-keying invoices by hand.

100 free extractions every month — no credit card, no AWS account, no setup hell.