AP Control Labs Finance Controls
REMOTE · API-PRODUCTION-9502.UP.RAILWAY.APP · SCANNED AUG 16
Read-only finance and operations controls for AI agents with evidence and safe next actions.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security89
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token. See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability66
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 2289 tokens (~71/item across 32 items; 32 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management20
- Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 0% of tool parameters carry a description.Fail
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · api-production-9502.up.railway.app
claude mcp add --transport http juodoc-ap-control https://api-production-9502.up.railway.app/mcp
[mcp_servers.juodoc-ap-control] url = "https://api-production-9502.up.railway.app/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"juodoc-ap-control": {
"type": "remote",
"url": "https://api-production-9502.up.railway.app/mcp",
"enabled": true
}
}
} openclaw mcp add juodoc-ap-control --url https://api-production-9502.up.railway.app/mcp --transport streamable-http
mcp_servers:
juodoc-ap-control:
url: "https://api-production-9502.up.railway.app/mcp" {
"mcpServers": {
"juodoc-ap-control": {
"type": "http",
"url": "https://api-production-9502.up.railway.app/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 16 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 14 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.
- 12 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 11 Aug 26 +3
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 10 Aug 26 66
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 16 Aug 2026 · Probed https://api-production-9502.up.railway.app/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=*.up.railway.app | CN=YE1,O=Let's Encrypt,C=US | 29 Jul 2026 | 27 Oct 2026 | ECDSA 256 | ECDSA-SHA384 | 6da79bb561da3efeb0e751ca21abd3999fe |
| SANs: *.up.railway.app, up.railway.app | ||||||
| CN=YE1,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 5ddd70dd31f801c85c186a7a04b80afe |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
DNSSEC insecure
Validation of api-production-9502.up.railway.app. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| app. | present | 23684 | 8 | Verified |
| railway.app. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Challenged, unverified
The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.
| Result | Challenged, unverified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31536000 |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | no-referrer |
| permissions-policy | camera=(), geolocation=(), microphone=() |
Protected resource metadata
| Retrieved | No |
|---|---|
| Problem | no_resource_metadata |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api-production-9502.up.railway.app/mcp | Verified | 200 | |
| http (plaintext) | http://api-production-9502.up.railway.app/mcp | HTTPS enforced | 301 | https://api-production-9502.up.railway.app/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
analyze_invoice ~56
Submit one normalized invoice for asynchronous duplicate analysis. Use the returned ID to poll; do not resubmit the same work with a new idempotency key.
| Name | Type | Req | Description |
|---|---|---|---|
| idempotency_key | string | yes | – |
| invoice | object | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | – | – |
| exceptions | array | yes | – |
| id | string | yes | – |
| status | – | yes | – |
No examples provided.
check_certificate_expiry ~61
Check expiry windows and customer verification flags for supplied certificate metadata. It does not validate certificate authenticity.
| Name | Type | Req | Description |
|---|---|---|---|
| as_of_date | string | – | – |
| certificates | array | yes | – |
| vendor_reference | string | yes | – |
| warning_days | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | yes | – |
| evidence | object | yes | – |
| exceptions | array | yes | – |
| next_action | string | yes | – |
| product | string | yes | – |
| status | – | yes | – |
No examples provided.
check_procurement_agent_action ~150
Evaluate a proposed procurement agent action against supplied budget, authority, category, vendor, contract, and approval policy. It never authorizes a payment or vendor-record change.
| Name | Type | Req | Description |
|---|---|---|---|
| action | – | yes | – |
| agent_id | string | yes | – |
| amount | string|number | yes | – |
| approval_present | boolean | – | – |
| approval_required_above | string|number | – | – |
| budget_available | boolean | yes | – |
| category | string | yes | – |
| contract_reference | string | – | – |
| currency | string | – | – |
| requester_authorized | boolean | yes | – |
| restricted_categories | array | – | – |
| vendor_approved | boolean | – | – |
| vendor_reference | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | yes | – |
| evidence | object | yes | – |
| exceptions | array | yes | – |
| next_action | string | yes | – |
| product | string | yes | – |
| status | – | yes | – |
No examples provided.
check_remittance_change ~67
Compare submitted fingerprinted remittance details with a customer-controlled vendor baseline. A change requires human out-of-band verification; this is not bank-account ownership verification.
| Name | Type | Req | Description |
|---|---|---|---|
| account_fingerprint | string | yes | – |
| remittance_reference | string | yes | – |
| vendor_reference | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | yes | – |
| exceptions | array | yes | – |
| next_action | string | yes | – |
No examples provided.
check_tax_form ~106
Check W-9 or W-8 form completeness using only a legal name, final four identifier digits, customer signature policy, and supplied dates. It is not tax advice or tax-ID verification.
| Name | Type | Req | Description |
|---|---|---|---|
| entity_country | string | – | – |
| expires_on | string | – | – |
| form_type | – | yes | – |
| legal_name | string | – | – |
| signature_required_by_customer | boolean | – | – |
| signed_on | string | – | – |
| tax_identifier_last4 | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | yes | – |
| evidence | object | yes | – |
| exceptions | array | yes | – |
| next_action | string | yes | – |
| product | string | yes | – |
| status | – | yes | – |
No examples provided.
check_vendor_domain_risk ~66
Compare a sender email domain with customer-provided approved and prior-domain baselines. Verify changes out of band.
| Name | Type | Req | Description |
|---|---|---|---|
| approved_domains | array | – | – |
| prior_sender_domains | array | – | – |
| sender_email | string | yes | – |
| vendor_reference | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | yes | – |
| evidence | object | yes | – |
| exceptions | array | yes | – |
| next_action | string | yes | – |
| product | string | yes | – |
| status | – | yes | – |
No examples provided.
check_vendor_onboarding ~71
Check customer-defined supplier onboarding packet completeness. It does not approve or create a vendor.
| Name | Type | Req | Description |
|---|---|---|---|
| approved_by_customer | boolean | – | – |
| remittance_fingerprint_present | boolean | – | – |
| required_items | array | yes | – |
| supplied_items | array | – | – |
| vendor_reference | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | yes | – |
| evidence | object | yes | – |
| exceptions | array | yes | – |
| next_action | string | yes | – |
| product | string | yes | – |
| status | – | yes | – |
No examples provided.
compare_quotes ~41
Compare customer-provided vendor quote lines and totals. It never selects or sends a quote.
| Name | Type | Req | Description |
|---|---|---|---|
| expected_currency | string | – | – |
| quotes | array | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | yes | – |
| evidence | object | yes | – |
| exceptions | array | yes | – |
| next_action | string | yes | – |
| product | string | yes | – |
| status | – | yes | – |
No examples provided.
create_purchase_order ~67
Register one customer-provided purchase order as the baseline for AP Match. This stores only the caller's data and never writes to an ERP.
| Name | Type | Req | Description |
|---|---|---|---|
| currency | string | – | – |
| lines | array | yes | – |
| po_number | string | yes | – |
| vendor_name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | – |
| lines | array | yes | – |
| po_number | string | yes | – |
| status | string | yes | – |
No examples provided.
diff_purchase_order_amendment ~53
Private preview. Compare two saved caller-owned PO revisions and return explicit header, term, and line changes.
| Name | Type | Req | Description |
|---|---|---|---|
| after_purchase_order_id | string | yes | – |
| before_purchase_order_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | yes | – |
| exceptions | array | yes | – |
| next_action | string | yes | – |
No examples provided.
extract_contract_obligations ~69
Find candidate ISO dates and obligation indicators in supplied contract text. Review results against the source; this is not legal advice.
| Name | Type | Req | Description |
|---|---|---|---|
| as_of_date | string | – | – |
| contract_reference | string | yes | – |
| contract_text | string | yes | – |
| lookahead_days | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | yes | – |
| evidence | object | yes | – |
| exceptions | array | yes | – |
| next_action | string | yes | – |
| product | string | yes | – |
| status | – | yes | – |
No examples provided.
extract_purchase_order ~50
Private preview. Queue one uploaded customer-owned purchase-order document for structured extraction. Poll with get_purchase_order_extraction.
| Name | Type | Req | Description |
|---|---|---|---|
| idempotency_key | string | yes | – |
| upload_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| fields | object|null | – | – |
| id | string | yes | – |
| next_action | string | yes | – |
| status | – | yes | – |
No examples provided.
get_invoice_exceptions ~30
Retrieve the agent-readable exception packet for one caller-owned invoice.
| Name | Type | Req | Description |
|---|---|---|---|
| invoice_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| exceptions | array | yes | – |
No examples provided.
get_invoice_extraction ~37
Retrieve canonical fields, OCR confidence, source evidence, and a next action for a submitted invoice.
| Name | Type | Req | Description |
|---|---|---|---|
| invoice_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| confidence | number|null | – | – |
| evidence | object | – | – |
| fields | – | – | – |
| invoice_id | string | yes | – |
| next_action | string | yes | – |
| status | – | yes | – |
No examples provided.
get_invoice_risk_score ~44
Private preview. Return the deterministic 0-100 control score, priority band, and named evidence signals for a completed invoice.
| Name | Type | Req | Description |
|---|---|---|---|
| invoice_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| band | – | yes | – |
| invoice_id | string | yes | – |
| next_action | string | yes | – |
| score | integer | yes | – |
| signals | array | yes | – |
No examples provided.
get_invoice_status ~36
Retrieve one analysis owned by the caller's organization. Poll until status is COMPLETED or FAILED.
| Name | Type | Req | Description |
|---|---|---|---|
| invoice_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | – | – |
| exceptions | array | yes | – |
| id | string | yes | – |
| status | – | yes | – |
No examples provided.
get_purchase_order_extraction ~40
Private preview. Get the caller-owned PO extraction status, canonical fields, OCR evidence, and next action.
| Name | Type | Req | Description |
|---|---|---|---|
| extraction_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| fields | object|null | – | – |
| id | string | yes | – |
| next_action | string | yes | – |
| status | – | yes | – |
No examples provided.
match_invoice ~62
Run a read-only two- or three-way match against one registered purchase order. Supply exactly one purchase-order identifier.
| Name | Type | Req | Description |
|---|---|---|---|
| invoice_id | string | yes | – |
| mode | – | – | – |
| purchase_order_id | string | – | – |
| purchase_order_number | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | yes | – |
| exceptions | array | yes | – |
| invoice_id | string | yes | – |
| line_results | array | yes | – |
| mode | – | yes | – |
| purchase_order_id | string | yes | – |
No examples provided.
match_reconciliation ~53
Produce deterministic candidate matches between two caller-provided record sets. It never posts a reconciliation.
| Name | Type | Req | Description |
|---|---|---|---|
| date_tolerance_days | integer | – | – |
| source_records | array | yes | – |
| target_records | array | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | yes | – |
| evidence | object | yes | – |
| exceptions | array | yes | – |
| next_action | string | yes | – |
| product | string | yes | – |
| status | – | yes | – |
No examples provided.
match_remittance_advice ~92
Match a customer-supplied remittance amount and invoice references to the caller's supplied open-invoice baseline. It never posts a payment.
| Name | Type | Req | Description |
|---|---|---|---|
| currency | string | – | – |
| invoice_references | array | – | – |
| open_invoices | array | yes | – |
| remittance_reference | string | yes | – |
| remitted_amount | string|number | yes | – |
| vendor_reference | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | yes | – |
| evidence | object | yes | – |
| exceptions | array | yes | – |
| next_action | string | yes | – |
| product | string | yes | – |
| status | – | yes | – |
No examples provided.
normalize_bank_statement ~45
Normalize customer-provided bank transaction records for reconciliation. It never connects to a bank or stores account numbers.
| Name | Type | Req | Description |
|---|---|---|---|
| account_reference | string | yes | – |
| transactions | array | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | yes | – |
| evidence | object | yes | – |
| exceptions | array | yes | – |
| next_action | string | yes | – |
| product | string | yes | – |
| status | – | yes | – |
No examples provided.
normalize_invoice_lines ~44
Private preview. Deterministically normalize customer-supplied invoice descriptions, SKUs, and units. It does not invent missing values.
| Name | Type | Req | Description |
|---|---|---|---|
| line_items | array | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| issues | array | yes | – |
| line_items | array | yes | – |
| next_action | string | yes | – |
| status | – | yes | – |
No examples provided.
preflight_erp_bill ~125
Check a proposed NetSuite or QuickBooks vendor bill using customer-supplied record references. This tool never connects to or writes to an ERP.
| Name | Type | Req | Description |
|---|---|---|---|
| approval_present | boolean | – | – |
| approval_required_above | string|number | – | – |
| erp | – | yes | – |
| existing_bill_reference | string | – | – |
| expected_currency | string | – | – |
| expected_vendor_reference | string | – | – |
| invoice | object | yes | – |
| purchase_order_reference | string | – | – |
| source_record_id | string | yes | – |
| vendor_reference | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | yes | – |
| evidence | object | yes | – |
| exceptions | array | yes | – |
| next_action | string | yes | – |
| product | string | yes | – |
| status | – | yes | – |
No examples provided.
preflight_franchise_invoice ~92
Find exact same-vendor, same-invoice, same-amount duplicates across customer-supplied multi-location history. It never searches another organization’s records.
| Name | Type | Req | Description |
|---|---|---|---|
| approved_vendor_references | array | – | – |
| historical_invoices | array | – | – |
| invoice | object | yes | – |
| location_open | boolean | – | – |
| location_reference | string | yes | – |
| vendor_reference | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | yes | – |
| evidence | object | yes | – |
| exceptions | array | yes | – |
| next_action | string | yes | – |
| product | string | yes | – |
| status | – | yes | – |
No examples provided.
preflight_freight_invoice ~157
Check a freight invoice against supplied shipment, linehaul, fuel, and accessorial policy data. It does not connect to a TMS or carrier system.
| Name | Type | Req | Description |
|---|---|---|---|
| allowed_accessorials | array | – | – |
| carrier_scac | string | yes | – |
| duplicate_shipment_invoice | boolean | – | – |
| invoice | object | yes | – |
| invoiced_accessorials | array | – | – |
| invoiced_fuel_surcharge | string|number | – | – |
| invoiced_linehaul | string|number | yes | – |
| quoted_fuel_surcharge | string|number | – | – |
| quoted_linehaul | string|number | yes | – |
| shipment_delivered | boolean | yes | – |
| shipment_reference | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | yes | – |
| evidence | object | yes | – |
| exceptions | array | yes | – |
| next_action | string | yes | – |
| product | string | yes | – |
| status | – | yes | – |
No examples provided.
preflight_subcontractor_invoice ~173
Check a subcontractor invoice against supplied commitment, retainage, schedule-of-values, work, lien-waiver, and insurance evidence. It does not determine legal validity of documents.
| Name | Type | Req | Description |
|---|---|---|---|
| approved_change_order_amount | string|number | – | – |
| approved_contract_amount | string|number | yes | – |
| billed_to_date | string|number | – | – |
| current_application_amount | string|number | yes | – |
| insurance_status | – | – | – |
| invoice | object | yes | – |
| lien_waiver_status | – | – | – |
| project_reference | string | yes | – |
| retainage_rate | string|number | – | – |
| retainage_withheld | string|number | – | – |
| schedule_of_values_matched | boolean | yes | – |
| subcontract_reference | string | yes | – |
| work_completed_verified | boolean | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | yes | – |
| evidence | object | yes | – |
| exceptions | array | yes | – |
| next_action | string | yes | – |
| product | string | yes | – |
| status | – | yes | – |
No examples provided.
record_receipt ~73
Record a customer-provided goods receipt for a registered purchase order. Use it before a THREE_WAY AP Match; it never updates a warehouse or ERP.
| Name | Type | Req | Description |
|---|---|---|---|
| lines | array | yes | – |
| purchase_order_id | string | yes | – |
| receipt_number | string | yes | – |
| received_at | string|null | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | – |
| lines | array | yes | – |
| purchase_order_id | string | yes | – |
| receipt_number | string | yes | – |
No examples provided.
resolve_vendor_entity ~89
Resolve customer-supplied vendor names, aliases, addresses, and domains against customer-provided expectations. It is not official verification.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | – |
| aliases | array | – | – |
| approved_domains | array | – | – |
| email_domain | string | – | – |
| expected_address | string | – | – |
| expected_name | string | – | – |
| vendor_name | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | yes | – |
| evidence | object | yes | – |
| exceptions | array | yes | – |
| next_action | string | yes | – |
| product | string | yes | – |
| status | – | yes | – |
No examples provided.
save_extracted_purchase_order ~46
Private preview. Save a completed extraction as a named PO revision before matching or amendment diffing.
| Name | Type | Req | Description |
|---|---|---|---|
| extraction_id | string | yes | – |
| revision_label | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | – |
| po_number | string | yes | – |
| revision_label | string | yes | – |
No examples provided.
search_invoice_history ~47
Find exact and near matches in the caller's own completed invoice history. Scores are explainable, not a fraud probability.
| Name | Type | Req | Description |
|---|---|---|---|
| invoice | object | yes | – |
| limit | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| matches | array | yes | – |
| next_action | string | yes | – |
No examples provided.
upsert_vendor_baseline ~73
Create or replace a customer-controlled remittance baseline. Provide a fingerprint, not a raw account number. This is not bank-account ownership verification.
| Name | Type | Req | Description |
|---|---|---|---|
| account_fingerprint | string | yes | – |
| remittance_reference | string | yes | – |
| vendor_name | string | yes | – |
| vendor_reference | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| account_fingerprint | string | yes | – |
| id | string | yes | – |
| reference | string | yes | – |
| remittance_reference | string | yes | – |
| vendor_name | string | yes | – |
No examples provided.
validate_invoice ~39
Run deterministic required-field, date, and line-total checks before AP routing. This does not create or alter accounting records.
| Name | Type | Req | Description |
|---|---|---|---|
| invoice | object | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| decision | – | yes | – |
| exceptions | array | yes | – |
| next_action | string | yes | – |
No examples provided.