Compliance & IdentityPOST /v1/check-pack?scheme=lending_prequal

Audit Multi-Document Onboarding Packs Against Checklists

Accepts an array of uploaded documents, rapidly classifies each document into its financial/legal taxonomy category, maps them onto required checklist slots, and outputs an audit report showing satisfied slots, missing items, and document cross-consistency.

Instant execution

Run this verification workflow directly. For instant zero-auth testing with deterministic fixture data, include the Stp-Sandbox: true header.

bash
curl -X POST "https://www.stipple.sh/v1/check-pack?scheme=lending_prequal" \
  -H "Authorization: Bearer stp_live_your_key_here" \
  -F "files=@passport.pdf" \
  -F "files=@recent_payslip.pdf" \
  -F "files=@bank_statement_90days.pdf"

Expected JSON response

The engine returns deterministic findings with evidence traces, confidence bounds, and recommended actions:

json
{
  "scheme": "lending_prequal",
  "complete": false,
  "completion_percentage": 66.7,
  "slots_required": ["primary_identity", "income_verification", "bank_statement_90_days"],
  "slots_satisfied": ["primary_identity", "income_verification"],
  "missing_slots": ["bank_statement_90_days"],
  "classified_documents": [
    {
      "filename": "passport.pdf",
      "classified_type": "australian_passport",
      "matched_slot": "primary_identity",
      "confidence": 0.99
    },
    {
      "filename": "recent_payslip.pdf",
      "classified_type": "payslip",
      "matched_slot": "income_verification",
      "confidence": 0.96
    }
  ]
}

Measured benchmark

Dataset measured

36 documents across 6 financial classes — 21 payslips, then 3 each of salary certificate, PAYG summary, bank statement, tax invoice, and receipt.

What was measured

Document classification and routing precision

Result

100% correct class assignment (36 of 36), with zero false routes and zero abstentions.

Statistical bound

95% Wilson lower bound 82.4% on routing precision. Per-class lower bounds run 43.9%–84.5%, because most classes carry only 3 samples.


Read this before the number: Read the sample size before the score. 36 documents over 6 classes is small: the point estimate is perfect, but the lower bounds are wide and this is not yet evidence of accuracy at scale. Slot matching itself is deterministic once each file is classified. Median classification latency is 2.2s per document.

AI agent prompt & MCP tool usage

When configuring autonomous agents (Claude Desktop, Cursor, Hermes), use this verified prompt pattern:

text
You are an onboarding intake assistant.
1. When an applicant uploads files, call check_pack(scheme="lending_prequal", urls=[...])
2. If complete is false, generate a friendly email requesting specifically the missing slots (e.g. "We received your passport and payslip, but still require your 90-day bank statement").

Input parameters & headers

FieldTypeRequiredDescription
filesarray of files (multipart)RequiredAll document files comprising the onboarding bundle.
schemestringOptionalNamed scheme: "income_proof", "lending_prequal", or "rental_application". Omit it and send a `requirements` checklist instead for an ad-hoc pack.
custom_checklistarray of stringsOptionalAd-hoc required slots if not using a pre-defined scheme.

Diagnostic signals & failed checks

Each check reports exactly what it tested and what evidence it found. High severity signals trigger an escalated risk band:

pack.slot_missinghigh

A mandatory checklist requirement was not met by any uploaded document.

pack.duplicate_slotinfo

Multiple documents satisfied the same slot (e.g. 2 different bank statements).

Production considerations & edge cases

  • Bundled PDFs (All-in-one scans): When an applicant scans passport + payslip into a single 3-page PDF, enable page-splitting in the query params to evaluate pages independently.

Related workflows

Take it to production

The snippets above run against the sandbox with Stp-Sandbox: true — no key, no credits, fixture data. Drop that header and the call is real, which needs a key.

A weekly credit allowance of your own, usage metering, and somewhere for purchased credits to live.

Every key gets a free weekly allowance. Past that, prepaid credit packs cover it, and Errors & limits says what happens when you run out.