- 1TASKResearch 20 companies
budget $10.00 - 2REQUESTcompany-data.api
req_4A81 · attempt 02 - 3PAYMENT$0.12 confirmed
pay_72BC · proof verified - !DELIVERYNo result observed
timeout after 12,000 ms
POST-PAYMENT RECONCILIATION FOR AI AGENTS
Every agent payment, closed.
AgentClose starts after an agent pays—matching every payment to its request, delivery, and receipt, then surfacing anything that does not reconcile.
The last mile of agent payments.From money moved to transaction closed.
Payments move in milliseconds. Business context should keep up.
THE MISSING LAYER
Four systems see fragments.
None sees the purchase.
At agent speed, a wallet balance is not an answer. Teams need to know why money moved and whether the promised result arrived.
Agent runtime
Knows the goal, agent, task, and request—but not whether funds truly settled.
task.startedPayment rail
Knows the amount, payee, and confirmation—but not what the agent intended to buy.
payment.confirmedService provider
Knows the API response—but not whether it belongs to the right payment or retry.
delivery.unknownReceipt
Describes a charge—but not its parent task, project, or effective delivered cost.
receipt.observedAgentClose creates the fifth fact
HOW IT WORKS
Observe beside the payment path.
Never block it.
AgentClose records facts asynchronously. If it is unavailable, the agent keeps working and events reconcile when the connection recovers.
No keys
Never stores private keys or signs on the agent’s behalf.
No funds
Never holds, routes, converts, or settles customer money.
No payment control
Does not approve budgets or decide whether an agent can pay.
No lock-in
Designed to normalize events across rails, wallets, facilitators, and service types.
INTEGRATE AT THE RUNTIME
Wrap the call.
Keep your payment stack.
The runtime is where task intent still exists. Install @agentclose/x402 from npm, use agentclose from PyPI, or send events directly to the API—while your existing payment client continues to execute payments.
- Stable agent, task, and request identifiers
- Payment proof normalization
- Delivery evidence and result hashes
- Machine-readable receipts
agent.tsNPM · @agentclose/x402// npm install @agentclose/x402
// Keep your existing payment client
import { AgentClose } from "@agentclose/x402";
const close = new AgentClose({
baseUrl: "https://api.apibridge.cc",
apiKey: process.env.AGENTCLOSE_KEY
});
const paidFetch = close.wrapX402Fetch(x402Client);
const result = await paidFetch(url, undefined, {
agentId: "research-agent",
taskId: "research-001",
requestId: "request-001",
accountingAmount: { amountMinor: 8, currency: "USD" }
});
PYTHON INTEGRATION
One package.
Two integration paths.
Capture payment evidence from Python, then let agents query reconciled outcomes through the read-only MCP server. Both paths ship from the same agentclose package.
agentclose · v0.1.0Built and integration-tested for Python 3.10+.Capture from Python runtimes.
Sync and async clients, batch capture, retries, fail-open behavior, and an x402 observer—without replacing the payment client.
pip install agentclose
from agentclose import AgentCloseClient, Event
with AgentCloseClient(
api_key="acl_..."
) as client:
client.capture(Event(
type="request.started",
data={
"agent_id": "research-agent",
"task_id": "research-001",
"request_id": "request-001"
}
))
Ask what happened after payment.
Run the MCP server from the same Python distribution. It can query transactions, task cost, payment status, usage, and open exceptions; it cannot move money or modify reconciliation data.
pip install "agentclose[mcp]"
export AGENTCLOSE_API_KEY="acl_..."
agentclose-mcp
# Tools exposed to the agent
get_task_cost
list_open_exceptions
get_payment_status
The Python SDK and read-only MCP server ship together in the agentclose PyPI distribution. The TypeScript/x402 integration above remains a separate runtime path.
THE RECONCILIATION CONTRACT
Three facts in. One closed lifecycle out.
AgentClose correlates post-payment evidence without replacing the systems that produced it.
agent_idtask_idrequest_idpayment_idamount + statuspayment_proofdelivery_statusresult_hashreceipt$0.08 confirmedresult deliveredreceipt linked
CLOSEDEXCEPTIONS, EXPLAINED
Find the gap before
the next retry.
Every exception comes with evidence and a recommended next action—not another opaque alert.
PAID_NO_DELIVERY+Paid. Nothing returned.
Stop a retry from becoming another charge while the service result is unknown.
Paid. Nothing returned.
Stop a retry from becoming another charge while the service result is unknown.
payment.confirmed + delivery.unknownNEXT ACTIONQuery service status before retrying payment.DUPLICATE_PAYMENT+One request. Two payments.
Link retries and payment proofs back to the same request before cost disappears.
One request. Two payments.
Link retries and payment proofs back to the same request before cost disappears.
1 request_id + 2 confirmed paymentsNEXT ACTIONStop the retry chain and preserve both proofs.AMOUNT_MISMATCH+Quote and charge diverged.
Compare the price the agent accepted with the amount that actually settled.
Quote and charge diverged.
Compare the price the agent accepted with the amount that actually settled.
quoted_amount ≠ settled_amountNEXT ACTIONCompare the accepted quote with the payment proof.ORPHAN_PAYMENT+Money moved. Task unknown.
Surface spend that cannot be assigned to an agent, task, project, or cost center.
Money moved. Task unknown.
Surface spend that cannot be assigned to an agent, task, project, or cost center.
payment confirmed + no task/request matchNEXT ACTIONInspect runtime events and assign the cost manually.BUILT FOR AGENT OPERATORS
One view for builders,
operators, and finance.
01Agent developers
Debug retries, provider failures, and payment state without stitching together five logs.
Trace every run +
Agent developers
Debug retries, provider failures, and payment state without stitching together five logs.
02Agent platforms
Give every agent and tenant a consistent transaction history across payment providers.
Normalize every rail +
Agent platforms
Give every agent and tenant a consistent transaction history across payment providers.
03Finance teams
Assign spend to tasks and projects. Separate delivered cost from exception cost.
Close every period +
Finance teams
Assign spend to tasks and projects. Separate delivered cost from exception cost.
SIMPLE PRICING
Start with one
reconciliation workspace.
One plan for teams proving paid-agent workflows. Taxes, where applicable, are calculated at checkout.
AGENTCLOSE PRO
14-day free trial. Cancel before the trial ends to avoid the first charge.
Start free ↗Included each month
- 100,000 unique reconciliation events
- Task, request, payment, delivery, and receipt matching
- Duplicate-payment and missing-delivery detection
- Dashboard, transaction history, and CSV exports
- Stripe and x402 event adapters
- Signed exception webhooks
Usage is measured by unique accepted events within each UTC calendar month. Replayed events with the same idempotency key are not counted twice.
AgentClose never holds funds, stores wallet keys, or processes card details.
Full pricing details →AGENT PAYMENT FAQ
Built for a new kind
of transaction.
Clear answers for teams evaluating agentic payments, x402, and paid API reconciliation.
What does AgentClose do after an agent pays?+
AgentClose connects the payment to the agent, task, request, service delivery, and receipt. It produces one explainable transaction lifecycle and surfaces exceptions such as paid-without-delivery, duplicate payment, amount mismatch, and unassigned spend.
Why are payment logs not enough?+
A payment log proves that money moved, but usually does not know why the agent paid, which retry produced the charge, whether the service was delivered, or which receipt and project belong to the transaction. AgentClose correlates those separate facts.
How do I integrate AgentClose?+
Send task, request, payment, delivery, and receipt events through the AgentClose API, TypeScript wrapper, or Python SDK. Events are recorded asynchronously, so your existing wallet, x402 client, and payment path continue to work unchanged.
What can the AgentClose MCP server do?+
The read-only MCP server lets compatible agents query transactions, task cost, payment status, usage, and open exceptions. It cannot send payments, capture new events, resolve exceptions, rotate keys, or modify reconciliation data.
Does AgentClose custody wallets or funds?+
No. AgentClose is a non-custodial, asynchronous observer. It does not store private keys, sign payments, hold funds, route money, or replace your existing wallet or payment provider.
Does AgentClose approve payments or control agent budgets?+
No. AgentClose begins after payment. It does not approve budgets, authorize purchases, or decide whether an agent can pay. Wallets, payment controls, and products such as AgentLedger can remain upstream.
Is AgentClose designed for x402 payments?+
Yes. AgentClose supports x402 and paid API workflows through a rail-neutral event model that also accommodates Stripe and other payment providers.
Is this an AI agent spend management tool?+
It provides task-level spend attribution and exception cost reporting, but its core job is reconciliation: proving what an agent paid for, whether the service was delivered, and which receipt belongs to the transaction.
SELF-SERVICE ACCESS
Your agents are starting to pay.
Make every payment explainable.
Sign in with Google to create your workspace and first Agent project. Existing users return to their current workspace.
Continue with Google ↗No password to create. Need help? support@apibridge.ccGoogle authentication is used only for account access.