Finance pack
Finance reference pack, invoices, ledger balances, idempotent payments and reconciliation, on fictitious data with a simulated ERP.
Reference
| Field | Value |
|---|---|
| Name | finance |
| Version | 1.0.0 |
| Licence | MIT |
| Type | Reference pack |
format | pack |
domain | finance |
| Category | finance |
namespace | enterprise-ai-packs |
publisher | Enterprise AI reference packs |
owner | enterprise-ai-packs |
compatibility.platform | >=1.0.0 <2.0.0 |
compatibility.sdk | >=1.0.0 <2.0.0 |
compatibility.runtimes | navin |
dependencies | None |
| Source | packs/finance/plugin.yaml |
| Documentation | packs/finance/docs/en/README.md, packs/finance/docs/fr/README.md |
Capabilities
| Kind | Name |
|---|---|
tool | finance-invoice-lookup |
tool | finance-ledger-balance |
tool | finance-payment-initiate |
tool | finance-reconcile |
connector | finance-erp |
policy | finance |
Requested permissions
The administrator grants a subset at install time; only the granted scopes are enforced.
| Scope | Sensitive | Classification | Reason |
|---|---|---|---|
finance.invoices.read | No | confidential | Read supplier invoices and their status. |
finance.ledger.read | No | confidential | Read ledger account balances. |
finance.payments.write | Yes | restricted | Initiate the payment of an approved invoice, exactly once. |
finance.reconciliation.read | No | confidential | Match bank statement lines with payments and invoices. |
Data protection
| Field | Value |
|---|---|
classification_max | restricted |
pii | false |
residency | eu-west-1 |
retention_days | 90 |
dlp | mask |
fictitious_data | true |
piiDetectionRequired | true |
maskingPolicy | mask |
externalExportDefault | deny |
Approvals
Required for: install, upgrade, sensitivePermissions, production, externalExport, resume.
| Gate | Quorum | Roles |
|---|---|---|
install | 1 | tenant_admin, security_officer |
sensitive | 2 | tenant_admin, security_officer |
production | 2 | tenant_admin, security_officer |
Security and test flags
| Field | Value |
|---|---|
security.signedArtifactRequired | true |
security.sandboxRequired | true |
security.dynamicAuthorization | true |
security.auditRequired | true |
testFlags.sdkConformance | true |
testFlags.authorization | true |
testFlags.security | true |
Configuration
Properties of spec.configSchema, set by the administrator at install time:
| Name | Type | Constraints |
|---|---|---|
model_id | string | {"minLength": 3} |
mcp_servers | object | {"additionalProperties": {"additionalProperties": false, "properties": {"url": {"pattern": "^https?://", "type": "string"}}, "required": ["url"], "type": "object"}} |
Components
| Kind | Name | Version | Description | Details | Path |
|---|---|---|---|---|---|
| Agent | finance-assistant | 1.0.0 | Answers on invoices and ledger balances, initiates approved payments exactly once, runs the reconciliation. | risk_level: limited, autonomy.level: supervised, tools tool:finance-invoice-lookup, tool:finance-ledger-balance, tool:finance-payment-initiate, tool:finance-reconcile | packs/finance/agents/finance-assistant.yaml |
| Subagent | finance-controller | 1.0.0 | Reviews a proposed payment against the invoice and the reconciliation before the human approval. | risk_level: minimal, autonomy.level: assisted, tools tool:finance-invoice-lookup, tool:finance-reconcile | packs/finance/subagents/finance-controller.yaml |
| Prompt | finance-close-report | - | Month end close report from the reconciliation result. | variables period, matched, unmatched, language | packs/finance/prompts/finance-close-report.yaml |
| Prompt | finance-invoice-answer | - | Answer of the finance assistant on an invoice. | variables invoice_id, supplier, status, open_amount, currency, language | packs/finance/prompts/finance-invoice-answer.yaml |
| MCP server | finance-mcp | - | MCP server of the Finance pack (official MCP Python SDK, MIT licence). | transport: streamable_http, tools finance_invoice_lookup, finance_ledger_balance, finance_payment_initiate, finance_reconcile | packs/finance/mcp/servers/finance-mcp.yaml |
| MCP tool | finance-invoice-lookup | 1.0.0 | Fictitious supplier invoice, status and open amount, without bank details. | action: read, scopes finance.invoices.read, risk_level: limited, requires_approval: false | packs/finance/mcp/tools/finance-invoice-lookup.yaml |
| MCP tool | finance-ledger-balance | 1.0.0 | Balance of a fictitious ledger account. | action: read, scopes finance.ledger.read, risk_level: limited, requires_approval: false | packs/finance/mcp/tools/finance-ledger-balance.yaml |
| MCP tool | finance-payment-initiate | 1.0.0 | Pay an approved fictitious invoice exactly once, idempotent per key, after a human approval. | action: payment, scopes finance.payments.write, risk_level: high, requires_approval: true | packs/finance/mcp/tools/finance-payment-initiate.yaml |
| MCP tool | finance-reconcile | 1.0.0 | Match the fictitious bank statement with payments and invoices. | action: read, scopes finance.reconciliation.read, risk_level: limited, requires_approval: false | packs/finance/mcp/tools/finance-reconcile.yaml |
| Connector | finance-erp | 1.0.0 | ERP connector of the Finance pack. Simulated on fictitious invoices until the tenant configures it. | system: erp, auth.type: service_account, scopes finance.invoices.read, finance.ledger.read, finance.payments.write, finance.reconciliation.read | packs/finance/connectors/finance-erp.yaml |
| Workflow | finance-invoice-payment | - | Payment of an approved invoice with a controller review and a four eyes approval. | steps invoice, review, approval, pay, reconcile, on_failure: stop | packs/finance/workflows/finance-invoice-payment.yaml |
| Knowledge base | finance-knowledge | - | Knowledge base of the Finance pack (fictitious accounts payable procedure). | classification: internal | packs/finance/rag/config.yaml |
| Skill | finance-month-end-close | 1.0.0 | Month end close checklist covering balances, open invoices and the reconciliation. | scopes finance.ledger.read, finance.reconciliation.read, data_classification_max: confidential | packs/finance/skills/finance-month-end-close/SKILL.md |
| Skill | finance-payment-controls | 1.0.0 | Controls applied before and while initiating a supplier payment. | scopes finance.payments.write, data_classification_max: restricted | packs/finance/skills/finance-payment-controls/SKILL.md |
Evaluations and tests
| Name | Type | Path | Threshold |
|---|---|---|---|
finance-answers | promptfoo | evaluations/promptfoo.yaml | 1.0 |
finance-retrieval | ragas | evaluations/ragas.jsonl | 0.8 |
| Kind | Path |
|---|---|
unit | tests/unit |
integration | tests/integration |
authz | tests/authz |
security | tests/security |
opa | policies/opa |
Files
| Kind | Path |
|---|---|
| Rules | packs/finance/rules/finance-rules.md |
| Policies | packs/finance/policies/opa/finance.rego, packs/finance/policies/opa/finance_test.rego, packs/finance/policies/openfga/model.fga, packs/finance/policies/openfga/tests.fga.yaml |
| Observability | packs/finance/observability/alerts/finance.yaml |
| Knowledge base documents | packs/finance/rag/documents/payables-procedure.md |
Install it
Validate, build, sign and publish the pack, then install it from the Marketplace: the preflight checks the capabilities and the configuration before the installation.
enterprise-ai plugin validate packs/finance
enterprise-ai plugin build packs/finance --out /tmp/finance-dist
COSIGN_PASSWORD=... enterprise-ai plugin sign packs/finance --out /tmp/finance-dist --key cosign.key --signer <publisher>
enterprise-ai plugin publish packs/finance --out /tmp/finance-dist --key cosign.key \
--oci <registry>/packs/finance:1.0.0
cosign.key: signing key of your organization. <publisher>: publisher name registered in the Marketplace. <registry>: OCI registry of the Marketplace. Then call POST /v1/marketplace/preflight and POST /v1/marketplace/installations, see the Marketplace guide.