{"ref":"artifact:sap-samples-btp-cap-dox-invoice-validation","page":"/artifacts/sap-samples-btp-cap-dox-invoice-validation","json":"/artifacts/sap-samples-btp-cap-dox-invoice-validation.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"sap-samples-btp-cap-dox-invoice-validation","name":"SAP-samples/btp-cap-dox-invoice-validation","artifact_type":"sample","ecosystem":"cap","domain":"ai-and-agents","use_as":"starting-point","origin_ring":"sap-official","description":{"one_line":"A CAP application on SAP BTP for invoice validation: Document Information Extraction reads an invoice PDF, a person corrects the entries, and a workflow passes it on while recording each change.","short":"CAP app validating invoices with Document Information Extraction","what_it_solves":"Automates the manual, back-and-forth work of validating an invoice PDF: it extracts entries with Document Information Extraction (DOX), lets a person copy over or correct them, and forwards the invoice to the next person in a validation workflow while recording each correction and its reason over time. It runs entirely on SAP BTP, built with the Cloud Application Programming Model and, in its published form, an Amazon S3-backed Object Store; other object-store variants need adjusting the code that talks to storage. It sits alongside SAP Central Invoice Management or OpenText Vendor Invoice Management as a separate extension rather than a replacement for either."},"links":{"repo":"https://github.com/SAP-samples/btp-cap-dox-invoice-validation"},"type_properties":{"form":{"value":"reference-application","sources":[{"url":"https://github.com/SAP-samples/btp-cap-dox-invoice-validation","title":"SAP-samples/btp-cap-dox-invoice-validation — README","checked":"2026-10-18","quote":"This sample tries to alleviate some of those pain points."}]}},"identity":{"license":"Apache-2.0"},"source_available":true,"demonstrates":["capability:document-extraction"],"maintainers":["actor:sap-samples"],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-09-13"},"contributors":["actor:adipleyer","actor:ajinkyapatil8190","actor:gerdbuchmueller","actor:julian-schambeck","actor:julianschambeck","actor:robinpurschwitz","actor:vikas-thimmiaha"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"9 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-06, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"no release dates"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"good","evidence":"1 test file"},{"label":"Docs","tier":"good","evidence":"docs/ with 10 pages, README 4 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":14,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":14,"forks":1,"open_issues":0,"archived":false,"pushed_at":"2026-06-11","license_spdx":"Apache-2.0","org_owned":true,"default_branch":"main","created_at":"2024-02-02T05:44:15Z","open_prs":0,"tree_truncated":false,"test_files":1,"workflows":0,"other_ci":false,"readme_bytes":3915,"docs_files":10,"changelog":false,"license_file":true,"dts_files":2,"first_commit":"2024-02-02","last_commit":"2026-06-11","commits":129,"contributors":9,"readme_path":"README.md","readme_sha":"53da18cde9f74cc5c2b3f87001b493e154fd8d8a","repo_read":"2026-10-26"},"edges":{"maintainers":[{"ref":"actor:sap-samples","name":"SAP Samples","json":"/actors/sap-samples.json"}],"contributors":[{"ref":"actor:adipleyer","name":"Adi Pleyer (priv)","json":"/actors/adipleyer.json"},{"ref":"actor:ajinkyapatil8190","name":"Ajinkya Patil","json":"/actors/ajinkyapatil8190.json"},{"ref":"actor:gerdbuchmueller","name":"GerdBuchmueller","json":"/actors/gerdbuchmueller.json"},{"ref":"actor:julianschambeck","name":"Julian Schambeck","json":"/actors/julianschambeck.json"},{"ref":"actor:julian-schambeck","name":"julian-schambeck","json":"/actors/julian-schambeck.json"},{"ref":"actor:robinpurschwitz","name":"Robin","json":"/actors/robinpurschwitz.json"},{"ref":"actor:vikas-thimmiaha","name":"Vikas Thimmiaha","json":"/actors/vikas-thimmiaha.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}