Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the End Close API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fendclose.com%2Fendclose" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fendclose.com%2Fendclose" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with End Close API.
Ingest transaction records into configurable data streams via /data_streams and /records, including bulk loads through /records/bulk
Match records automatically by defining reconciliation rules under /reconciliation_rules and running reconciliations
Surface and clear unmatched items as reconciliation exceptions, writing findings and reading the review via /reconciliation_exceptions/{id}/findings and /review
Track bank account balances by creating or updating them under /bank_account_balances, including bulk balance updates
GET STARTED
Monitor data stream ingestion health through /data_streams/{key}/health and inspect individual stream operations
Configure and run reconciliation agents under /agents, list their runs, and attach input files for a run
Patterns agents use End Close API for, with concrete tasks.
★ AI agent month-end reconciliation
An AI finance assistant uses Jentic to discover the End Close operations it needs without browsing docs, then drives a close: it loads the month's transaction records, runs the reconciliation that matches them against bank balances, and hands back the exceptions a human still needs to decide. The agent never holds the raw API key, because Jentic injects it at call time.
Search Jentic for 'reconcile records against bank balances', create a data stream with POST /data_streams, bulk load records via POST /records/bulk, run a reconciliation with POST /reconciliations, then list open items from GET /reconciliation_exceptions
Automated bank reconciliation
Finance teams match a ledger of transaction records against the balances reported by their bank accounts and want the matching to run without manual tie-outs. End Close ingests the records, applies reconciliation rules that pair them to balances, and leaves only the unmatched items for review. Progress can be polled so a workflow knows when matching has settled.
Create a reconciliation with POST /reconciliations, add matching logic with POST /reconciliation_rules, then read GET /reconciliations/{id}/agent_status to confirm the matching run is complete
Exception resolution workflow
Every reconciliation leaves a residue of items that did not match, and these exceptions are where accountants spend their time. End Close lists each exception, lets a reviewer write findings against its lines, and exposes the resulting review so the decision is recorded and auditable. This turns a spreadsheet chase into a structured queue an agent or analyst can work down.
List exceptions with GET /reconciliation_exceptions, open one with GET /reconciliation_exceptions/{id}, write findings with PUT /reconciliation_exceptions/{id}/findings, then read GET /reconciliation_exceptions/{id}/review
Continuous transaction ingestion
Before any reconciliation can run, transaction data has to land reliably. End Close models each feed as a data stream with its own property definitions, accepts records one at a time or in bulk, and reports an ingestion health signal so a pipeline can tell a healthy feed from a stalled one. File imports are tracked per stream with their own retry and cancel controls.
Create a data stream with POST /data_streams, confirm it is healthy with GET /data_streams/{key}/health, then bulk create records with POST /records/bulk
79 endpoints — the end close api reconciles financial records against bank account balances and surfaces the unmatched items a team must clear to close the books.
METHOD
PATH
DESCRIPTION
/data_streams
Create a data stream
/records/bulk
Bulk create records
/reconciliations
Create a reconciliation
/reconciliation_rules
Create a reconciliation rule
/reconciliation_exceptions
List reconciliation exceptions
/reconciliation_exceptions/{id}/findings
Write findings for an exception's lines
/bank_account_balances
Create or update a bank account balance
/agents/{id}/runs
Run an agent
/data_streams
Create a data stream
/records/bulk
Bulk create records
/reconciliations
Create a reconciliation
/reconciliation_rules
Create a reconciliation rule
/reconciliation_exceptions
List reconciliation exceptions
/reconciliation_exceptions/{id}/findings
Write findings for an exception's lines
/bank_account_balances
Create or update a bank account balance
/agents/{id}/runs
Run an agent
What agents get from Jentic-routed access to this vendor.
Setup
Wiring the End Close API by hand means managing its X-API-KEY header, modeling data streams for your records, and building the reconciliation and exception polling loop yourself. Through Jentic you install once, import End Close from the API Directory, store the key once, and your agent calls it.
Permission scoping
End Close puts each resource id in the URL path, such as /reconciliations/{id}, /data_streams/{key}, and /bank_accounts/{id}, so a rule can pin your agent to the reconciliation and ingestion operations it needs. You choose the operations it may call, so destructive ones like deleting a reconciliation rule or a bank account are not included unless you add them.
Credential isolation
Your End Close API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'reconcile records against bank balances' or 'resolve a reconciliation exception', and Jentic returns the matching End Close operation with its input schema so the agent calls the right endpoint without browsing the reference docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using End Close API through Jentic.
What authentication does the End Close API use?
The End Close API authenticates with an API key sent in the X-API-KEY request header, per its OpenAPI spec. When you call it through Jentic, the key is stored encrypted by your own Jentic One instance and injected at execution time, so it never enters the agent's prompt, logs, or context.
Can I resolve reconciliation exceptions with the End Close API?
Yes. List the open items with GET /reconciliation_exceptions, open one with GET /reconciliation_exceptions/{id}, write findings for its lines with PUT /reconciliation_exceptions/{id}/findings, and read the resulting review with GET /reconciliation_exceptions/{id}/review. That gives an agent a structured queue to work down rather than a free-form spreadsheet.
Can the End Close API match records automatically?
Yes. Define the matching logic as reconciliation rules with POST /reconciliation_rules, then run a reconciliation with POST /reconciliations so the rules pair records to bank balances and leave only the unmatched items as exceptions. You can poll progress with GET /reconciliations/{id}/agent_status.
What are the rate limits for the End Close API?
The OpenAPI spec does not specify rate limits for the End Close API. Check the End Close documentation at https://www.endclose.com/docs for current limits, and have your agent retry with backoff when the API signals that it is being throttled.
How do I run a month-end reconciliation with the End Close API through Jentic?
Search Jentic for 'reconcile records against bank balances' to load the End Close operation with its input schema, create a data stream, bulk load the period's records with POST /records/bulk, then run a reconciliation and read its agent status. To run it on your own infrastructure, install Jentic One from its GitHub repo.
Can I limit what my agent is allowed to do with the End Close API?
Yes. Because you run Jentic One yourself, you decide which End Close operations the agent may call. Write a rule that permits listing and reading reconciliations and writing exception findings, and leave out destructive operations such as deleting a data stream or a bank account, so the agent can close the books without being able to erase them, and every call it makes is logged.
For Agents
Reconcile transaction records against bank balances in End Close: ingest records through data streams, run reconciliation rules to match them, and work the resulting exceptions, matches, and agent runs.
Use for: Create a data stream to ingest bank transaction records, Run a reconciliation and review the exceptions it produces, Match records automatically with a reconciliation rule, List all open reconciliation exceptions that need findings
Not supported: Does not handle payment processing, invoicing, or tax filing. Use for reconciling records against bank balances and closing the books only.
The End Close API reconciles financial records against bank account balances and surfaces the unmatched items a team must clear to close the books. It ingests transaction records through configurable data streams, applies reconciliation rules that match records automatically, and tracks each leftover item as a reconciliation exception with findings and a review trail. Bank accounts and their balances are managed directly, and reconciliation agents can be configured and run to work through matches and exceptions. Authentication uses an API key sent in the X-API-KEY header, and the surface spans data streams, records, reconciliations, rules, matches, exceptions, bank accounts, and agents.
This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.
Base layer of spec validity and structural soundness.
Aggregated quality score from linter diagnostics, weighted by severity.
Percentage of `$ref` references that resolve successfully.
Checks whether the API description parses successfully and conforms to its declared specification (e.g., OpenAPI).
Structural correctness score based on schema issues using logarithmic dampening.
Clarity, completeness, and ingestion readiness for developers and tooling.
How richly the API is illustrated with examples.
Percentage of examples that conform to their schemas.
Percentage of operations with complete response definitions (success, client error, server error).
Health of API ingestion, bundling, and resolution within Jentic pipelines.
Semantic breadth, depth, and agent comprehension for AI systems.
Coverage of descriptions across API elements.
Coverage of RFC 9457 Problem Details for error responses.
Coverage, uniqueness, and casing consistency of operationIds for AI inference.
Coverage of summaries across operations/tags/info.
Functional utility, complexity comfort, and AI orchestration readiness.
Agent comfort level based on API operational and structural complexity.
Trust, risk posture, and security compliance.
Average quality of security schemes based on authentication method strength (weakest link for OAuth2).
Findability, semantic richness, and reasoning readiness.
Clarity and depth of descriptions across API elements.
Score it yourself
Every API in the directory is allowlisted, so you can re-score it with no key required.
npx @jentic/api-scorecard-cli score <openapi-url>