Hand the agent
the company account.
One key lets an agent pay suppliers, close the books and collect from customers. Compose a payment, watch what happens, and find the one step a person still takes.
Same agent. Two sides of the money rail.
In the first report an agent prepared four invoice payments and a person signed once. Here the same question is asked of a business account that was built to be operated by software.
The agent prepares. I sign.
The agent holds the key.
Left column from the published report and Fio’s customer API documentation. Right column from the Walletory Business Customer API specification and documentation. Disclosure: Purple Technology, which publishes Hello Purple, and Walletory share some owners.
Pick a payment. Watch every call the agent makes.
Every step is what the real API does, told in plain words. The names, amounts and timings are made up. Flip a condition to see where the payment stops, and who was needed.
How can I feel safe handing my agent the key?
Honestly: partly because of what Walletory holds, and partly because of rules you have to give the agent yourself. Here is which is which, and what a mistake could cost with and without those rules.
The account’s own guards
- The key works only from the computer addresses you register. A leaked key is useless from anywhere else.
- Walletory never stores your key, only a fingerprint of it, and it checks that fingerprint on every request.
- Every request is logged, so there is always a record of what the agent asked for and when.
- Money asked of a customer moves only when that customer says yes, on their own device, with two-factor.
- Ask Walletory and the key is switched off.
The rules you give it
- A list of payees it may pay, and nobody else.
- A ceiling per payment and per day.
- A ledger of what it has already paid, checked before every payment.
- A rule to stop and ask a person when an outcome is unclear, never to retry blindly.
- A person who reviews anything above an amount you choose.
What the key cannot do for you
- It cannot be read-only.
- It cannot be limited to one wallet.
- It cannot carry a spending ceiling.
- It cannot expire on its own.
- It does not catch the same payment sent twice. Version 2 does, with an idempotency key.
- Scoped access, so a key holds only what it needs, is planned for version 2.
A made-up euro wallet holding 19,740 euro. Switch the agent’s rules on and off.
Walletory’s guards stay on whichever way you switch these: a stolen key still does nothing from another computer. Amounts are illustrative.
What the agent does alone, what a person does, what is not on the API.
Every row is a thing a business might want its agent to do. The dot says who can do it today, reading the specification literally.
| Action | Agent alone | A person | Coming later | Not on the API | Where it says so |
|---|---|---|---|---|---|
| List the business’s wallets and read a balance | GET /accounts, GET /accounts/{AccountId}/balances | ||||
| Read transactions for reconciliation | GET /accounts/{AccountId}/transactions, 90 days per call, UTC | ||||
| Pay another Walletory wallet | POST /domestic-payments | ||||
| Pay a bank account abroad (SWIFT, SEPA, JP, PH) | POST /international-payments; the rail is chosen from country and currency | ||||
| Pay a Singapore bank account | Planned for version 2; today the domestic endpoint is wallet-to-wallet only | ||||
| Convert currency as part of a payment | CurrencyOfTransfer must equal the wallet currency | ||||
| Ask a customer for money | POST /payment-requests, debtor by SG.Walletory.Email | ||||
| Approve that request and release the money | The debtor, in their own Walletory account, existing accept flow with 2FA | ||||
| Cancel a request the customer has not answered | DELETE /payment-requests/{id}, only while PDNG | ||||
| Be told when a payment settles | No callback in the spec; status is read by GET | ||||
| Issue itself a read-only or capped key | No scoped keys in version 1; version 2 is designed with scoped access | ||||
| Revoke the key | Keys are manually generated and revoked |
What is real here, and what is a reconstruction.
From the specification
- Every endpoint path, HTTP method, field name, identification scheme and status code shown in the run and the matrix, from the Walletory Business Customer API OpenAPI specification (version 1.0.0, as circulated in January 2026) and its documentation pages (last edited 2026-08-27).
- The per-rail required fields for SEPA, SWIFT and Japan local, from the “International Payment Requirements by Payment Method” table.
- The authentication model: bearer key, IP allowlist, HTTPS, hashed storage, manual issue and revocation, no expiry, no scopes (version 1).
- What differs in version 2, now in development: an x-idempotency-key header that stops duplicate payments, scoped access, and payments to Singapore bank accounts. From Walletory’s review, September 2026.
- The pull-payment lifecycle PDNG, ACTC, ACSP or RJCT with StatusReason; approval in the customer’s own Walletory account with 2FA; cancellation only while PDNG; 429 on too many pending requests to one debtor. The payment-request endpoints are in the documentation (June 2026) and not yet in the January specification file.
- The error envelope: an Errors array with ErrorCode, Message and Path, using Open Banking error codes.
- The left door: the published report “The agent was ready. The bank wasn’t.” and Fio’s customer API documentation.
Simulated or inferred
- Wallet identifiers, payment identifiers, amounts, beneficiaries, IBANs and BICs are fictional. The German IBAN is the format example published by banks, not an account.
- Response timing and the passage from PDNG to a final status are animated; a real payment takes as long as the rail takes.
- The exact wording of error messages for a currency mismatch and for cancelling an accepted request is not in the specification; the run shows the documented HTTP code with an illustrative message in the documented envelope.
- The run models version 1, which has no duplicate protection: an identical repeat is shown as a second payment.
- Two fields shown come from the newer documentation and are absent from the January specification: the international status ACWP, and NameKana under SupplementaryData.Creditor for Japan. Where the two disagree, the run follows the documentation.
- Nothing here connects to Walletory. No key, no network call, no account.
- This page describes engineering. It is not financial advice and does not offer or invite the use of any payment service.