Let your procurement agent pay invoices.
An inbox to receive invoices and a funded wallet to settle them — so your procurement agent can read, verify, and pay under spending limits you control.
Invoices arrive by email and get paid by someone with both the context and the authority to spend. A procurement agent that can't receive the invoice or hold spending power is just a reminder system.
Mailgent gives it an inbox to receive and parse invoices and a funded USDC wallet to settle them — under a spending mandate you set, so it can pay routine bills automatically and flag anything outside the rules.
Read the invoice from email
The agent receives the invoice as an email attachment or link, parses the amount, vendor, and due date, and checks it against your rules before doing anything.
Known vendors and amounts under your threshold can be paid automatically; anything unusual gets flagged to a human in-thread.
const inv = parseInvoice(await mail_get_attachment({ messageId, attachmentId }));
if (inv.amount <= mandate.perTxnLimit && knownVendor(inv.vendor)) {
await wallet_pay({ to: inv.payTo, amount: inv.amount, memo: inv.number });
} else {
await mail_reply({ threadId, text: "Flagged for review: " + inv.number });
}Pay under a mandate
The wallet enforces spending mandates: per-transaction caps, daily limits, and an allowlist of recipients. The agent can settle within those bounds and physically cannot exceed them — the limits live with the wallet, not the prompt.
A provable paper trail
Every payment settles in USDC on Base and produces a signed receipt, and every invoice email is logged. You get a clean, auditable record tying each payment back to the invoice that triggered it.
FAQ
Can I cap how much it spends?
Yes. Spending mandates set per-transaction and daily limits plus an allowlist, enforced at the wallet.
What currency does it pay in?
USDC on Base. Each payment settles in seconds and produces a signed receipt.
What happens with an unfamiliar invoice?
Anything outside your rules is flagged to a human in the email thread instead of paid.
Give your agent an inbox.
A real email address, a vault, 2FA, and an identity in one API call.