Case study·Humanos × Paymove·cs_paymove · v1 · 2026-05-29

Paymove settles agent payments on Visa’s rail.
Humanos proves a human authorized the spend before it moves.

Paymove is the settlement layer for agentic commerce on Visa’s protocol. Humanos slots into the settlement path as the dedicated authorization stack — a 3rd-party API that verifies every high-value spend against a human-signed mandate before it settles, and emits a portable, on-chain-anchored receipt either party can check.

Domain
Settlement for agentic commerceVisa rail · agent wallets
Surface area
Autonomous spend · IBAN-scopedHigh-value agent payments
Integration
humanos.verify()Inside Paymove’s settlement path
Site
paymove.io ↗Agentic settlement · Europe
§ 01 · About the customer

Paymove is the settlement layer for agentic commerce on the Visa rail.

Visa’s agentic commerce protocol gives autonomous agents a real rail to transact on. Paymove settles agent-initiated transactions on that rail — provisioning wallets, holding balances, and moving money the moment an agent acts.

Humanos plugs into Paymove’s settlement path as the dedicated authorization stack — a 3rd-party API that makes authorization a runtime primitive instead of internal wallet logic. Every high-value spend is verified against a human-signed mandate before it settles, and every settled payment carries an immutable, portable, on-chain-anchored receipt.

Paymove
Integrated
Domain
Settlement for agentic commerce
Surface area
Autonomous wallet spend · Visa rail
Runtime
paymove.settle.v1
Integration
humanos.verify() · in the settlement path
Anchored
2026-05-29 · v1
§ 02 · Problem

Settlement got fast.
Provable authorization didn’t keep up.

Visa’s protocol lets an agent transact on a real rail, and Paymove gives it a wallet to spend from. But autonomous spend still depends on the agent’s own logic to decide what’s allowed. Limits, approvals, and “did the human actually agree to this” live inside one party’s code and database — checked by the same system that moves the money.

What’s happening

Agents spend, authorization is assumed.

Paymove can settle a transfer on the Visa rail in seconds. Whether a human actually authorized that specific spend — this amount, to this counterparty — lives in the agent’s own logic, and was never designed to answer, at the moment money moves, “is this exact payment authorized?”

provision·spend·settleassumed
What it costs

Audit is reconstruction, not proof.

An enterprise diligence team or a Visa-scale partner reconstructs what the agent did from one party’s logs — never that any given spend was actually allowed. Every new partner, every regulator restarts the work. Authorization stays internal state; nothing portable, nothing both sides can check.

no shared answer·“was this spend authorized?”
Money moves on the rail. Authorization stays trapped in one party’s database. Not anymore.
§ 02 · close
§ 03 · Solution

One verify() call,
in the settlement path.

Before any spend that crosses a defined limit settles on the Visa rail, Paymove’s wallet calls humanos.verify(). Signature, counterparty (IBAN), amount, validity, and network membership are checked in real time against a human-signed mandate, and a deterministic answer is returned that Paymove attaches to a portable, on-chain-anchored receipt.

verification.capture · before payment settles
2026-05-29 11:14:07.802 UTC
Payment
tx_PM-018472
payment.send · paymove.agent.wallet
Spend
€ 5,000.00
To · DE89…3000€ 5,000.00
Rail fee€ 0.40
Total€ 5,000.40
x-humanos-mandate · 0xC44E…F912
Initiated by · Paymove agent wallet
on behalf of: Account Owner, Paymove
humanos.verify() · live capture
184 ms
signaturemandate signed by owner
28 ms
counterpartyIBAN on allowed list
52 ms
amountwithin € 10,000.00 limit
88 ms
validitymandate active until 2026-06-29
142 ms
networkall parties resolved
176 ms
Authorized · receipt emitted
proof:0xC44E…F912 · anchored on-chain
✓ Authorized

Payment settles.

Within limit, to an allowed IBAN, within validity. Paymove settles the spend on the Visa rail. A Receipt is attached to the transaction — portable, anchored on-chain, verifiable by either party without trusting the other’s database.

✕ Not authorized

Recover — then settle.

Over the limit, unknown IBAN, expired, or revoked. Humanos collects fresh human approval in real time (OTP by SMS, link by email), updates the mandate, and resumes once authorization is valid. The agent never silently spends or guesses.

Visa owns the rail. Paymove settles. Humanos proves the human authorized it.
§ 04 · Implementation

How Paymove implemented it.

Five stages in chronological order. The animation on the right walks through one agent payment end-to-end — authorized by the Paymove account owner, verified by Humanos in the settlement path, and settled on the Visa rail only after a deterministic yes/no.

01
§ 01 · Issue

Define mandate.

The Paymove account owner defines a “make a payment” action and authorizes its limits — a maximum amount and a list of allowed IBANs. Humanos issues a machine-verifiable mandate — signed once, reusable across every payment the agent makes.

ApproverAccount Owner · Paymove
Actionpayment.send · agentic
Limit€ 10,000.00 / payment
Valid until2026-06-29
02
§ 02 · Prepare

Agent prepares spend.

The Paymove agent wallet assembles the proposed payment — amount and destination IBAN. It presents the credential ID of the user-signed mandate and requests a verifiable presentation built on W3C VC 2.0, attached as x-humanos-mandate.

Agentpaymove.agent.wallet
Paymenttx_PM-018472
DestinationDE89…3000
Amount€ 5,000.00
03
§ 03 · Verify

Paymove verifies.

Before the payment settles, Paymove calls humanos.verify() directly against the mandate. Signature, counterparty (IBAN), amount, validity, and network membership are checked in 184 ms — deterministic, no LLM in the path.

Callerpaymove.settle
CounterpartyIBAN allowed · 52 ms
Amount€ 5,000 ≤ € 10,000 · 88 ms
Latency184 ms total
04
§ 04 · Settle

Settle on the Visa rail.

Authorized → Paymove settles the payment on the Visa rail and writes the receipt. Not authorized → the agent doesn’t fail silently or guess. For Paymove’s out-of-scope attempts (an €18,000 transfer beyond the limit), Humanos blocks before settlement and triggers a real-time step-up.

Authorized€ 5,000.00 · settled
Blocked€ 18,000.00 · over_limit
Recoverstep-up · SMS · resumes
05
§ 05 · Prove

Audit proof.

Every settled payment emits a cryptographic Receipt — the mandate hash anchored on-chain, attached to the transaction, portable forever. Both parties, partners, and regulators verify the Receipt directly against Humanos and the chain; nothing reconstructs trails from Paymove’s internal logs.

Proof IDproof:0xC44E…F912
Attachedtx.receipt
VerifiersCounterparty · Partner · Regulator
Resultindependently verifiable · forever
Live · humanos.verify() · Paymove × tx_PM-018472
§ 01 · Issue
01 · Issue · mandate signed by Account Owner
mandatesigned
subject: "paymove.agent.wallet",
principal: "owner@paymove.io",
action: "payment.send",
scope: ["payment.send"],
allowed_ibans: ["DE89…3000", "FR76…1234"],
amount_max: "€ 10,000.00 / payment",
valid_until: "2026-06-29"
02·03·04 · Prepare → Verify → Settle
  1. A1Send € 5,000.00 → DE89…3000authorizedmissingrequesting…approvedover_limit
    tx_PM-018472 · within mandate scope
  2. A2Send € 2,400.00 → FR76…1234authorizedmissingrequesting…approvedover_limit
    tx_PM-018473 · within € 10,000 limit
  3. A3Send € 18,000.00 → DE89…3000authorizedmissingrequesting…approvedover_limit
    tx_PM-091284 · exceeds € 10,000 limit
  4. A4Add new IBAN: NL91…7654authorizedmissingrequesting…approvedover_limit
    step-up SMS → Account Owner · resolves · resumes
verify() — called by Paymove’s settlement path, not by the agent
await humanos.verify({ subject, action, amount, counterparty, mandate }) // 184 ms · deterministic
settled · € 5,000.00 · tx_PM-018472
0xC44E…F912
05 · Prove · cryptographic receipt, mandate hash anchored on-chain
proof.jsonsigned
{
  "who_approved": "Account Owner · Paymove",
  "tx_ref": "tx_PM-018472",
  "action": "payment.send",
  "amount": "€ 5,000.00",
  "counterparty": "DE89…3000",
  "mandate": "0xC44E…F912",
  "validity": "≤ 2026-06-29",
  "timestamp": "2026-05-29T11:14:07.802Z",
  "signature": "0xC44E…F912"
}
CounterpartyPartnerRegulatorverify(proof)true
✓ receipt anchored on-chain · independently verifiable · forever
§ 05 · Outcome

What you get
the moment it’s wired in.

01 · Verify

Every high-value spend verified before settlement.

Nothing settles on assumption. The verify call is non-optional and inline — in the settlement path, before money moves on the Visa rail, not after the agent has already spent.

02 · Deterministic

Probabilistic agent, deterministic answer.

The agent stays probabilistic where it matters (reasoning, context). The spend-or-not boundary becomes a yes/no — no LLM in the verification path.

03 · Auditable

Auditability without rebuilding logs.

Every settled payment emits a portable Receipt, with the mandate hash anchored on-chain. Both parties verify directly; they don’t reconstruct from one side’s database.

04 · Recover

Recover missing authorization in real time.

Over the limit or an unknown IBAN? Humanos collects approval (OTP by SMS, link by email, KYC), updates the mandate, and resumes settlement once authorization is valid. No silent spends.

05 · Portable

Authorization travels with the payment.

Issue once; verify anywhere. The mandate authorizes spend to a specific IBAN and amount, so the boundary travels with the transaction — independent of which system executes it.

06 · Counterparty-scoped

Scoped to the IBAN, not a category.

The mandate authorizes this amount, to this counterparty — not a coarse spending category. The boundary is the IBAN and the limit, cryptographically signed by a human.

Agents move real money on the Visa rail — within provable, independently verifiable boundaries.
§ 06 · System flow

Agent → verify() →
settle → prove.

Live · 30s loop · verify → recover → settle → prove·humanos.verify()
Agentprepares spendverify()humanos.verify(...)184ms · deterministicMandatesubject · IBAN · limitAllowwithin scopeNot authrecoverUserapprove · KYC · SMSSettleVisa railProofreceipt · on-chainCounterpartyPartnerRegulator00 · IDLE01 · Agent prepares02 · verify() called03 · Over limit04 · Request approval05 · Mandate updated06 · Re-verify · auth07 · Settle08 · Proof emitted
§ 07 · Build vs Humanos

Authorization doesn’t scale
as internal wallet logic.

Build it inside the wallet

Internal authorization

Paymove + Humanos

Authorization as runtime primitive

Authorization is internal wallet logic and database state.
Authorization is a portable runtime primitive either party can verify.
The counterparty must trust Paymove's database.
Counterparties verify the mandate directly against Humanos and the on-chain hash.
Audit reconstructed from one party's transaction logs.
Immutable Receipt per payment, mandate hash anchored on-chain.
Limits are coarse category rules inside the agent.
Spend scoped to a specific IBAN and amount, signed by a human.
Policy changes require code deploys and agent rewrites.
Revoke or amend a mandate; effective on the next verify.
Probabilistic agent logic decides whether the spend is allowed.
Deterministic yes/no in the settlement path — no LLM in the path.
§ 08 · Network effect

Authorization becomes a shared primitive — not something rebuilt per partner.

Humanos
verify()
Paymove walletcaller
CounterpartyIBAN boundary
Regulatoroversight
Visa railsettlement
On-chain anchorimmutable

Mandates work across every party Paymove settles in front of.

Issue once. Verify anywhere — counterparties, partners, regulators, and the chain.

Counterparties verify Paymove’s payments directly.

External parties check authority against Humanos and the on-chain hash — without trusting Paymove’s database.

Every settlement integration reuses the same standard.

No new authorization logic per partner. The integration is the verify() call.

Each verifier strengthens the network.

The more systems verify against Humanos, the more valuable every mandate becomes.

§ 09 · Use cases

Anywhere an agent moves money on behalf of a human.

01

Autonomous procurement

Agents pay suppliers and vendors. Every transfer scoped to an approved IBAN and amount, authorized at settlement, carrying a portable receipt.

Verify before settlement
paytransfersettle
02

Subscriptions & recurring spend

Agents top up balances and pay recurring invoices. Humanos verifies each charge sits inside the mandate — within the limit, to an allowed IBAN — before it settles.

Verify before settlement
chargerenewcap
03

Treasury & disbursements

Payouts, refunds, cross-border transfers. The agent proposes; Humanos verifies authority and emits a Receipt the counterparty can verify independently, on-chain.

Verify before settlement
payoutrefundfx
04

Marketplace settlement

The Paymove agent settles on behalf of a human account owner across every counterparty it pays. Every payment carries the owner’s mandate — verifiable by every party it touches.

Verify before settlement
escrowreleaseattest
§ 10 · Model

Issue → Verify → Collect → Prove.

I
01 · Issue

Mandate.

Human authorizes a “make a payment” action — amount limit and allowed IBANs. Humanos issues a machine-verifiable mandate, reusable across every payment.

V
02 · Verify

Check.

Paymove runs humanos.verify() in the settlement path. Deterministic yes / no.

C
03 · Collect

Approval.

Over the limit or an unknown IBAN? Request step-up authorization from the human owner in real time — API, SMS, or email.

P
04 · Prove

Receipt.

Cryptographic Receipt per payment, mandate hash anchored on-chain. Auditable forever. Verifiable by anyone.

§ 11 · Category definition

Humanos operates inside Paymove’s settlement path — the moment an agent decides to move money on behalf of a human.

At that moment, authorization must be verified, the decision must be deterministic, and the outcome must be provable. Everything else follows.

Embedded

Lives inside the settlement path, not as a sidecar.

Plugged into Paymove’s wallet as the dedicated authorization stack — every high-value spend inherits it by default.

Deterministic

Probabilistic agent, yes/no at the boundary.

The verification path is deterministic. No LLM in the verify call.

Provable

Receipts verifiable by any party — and on-chain.

Auditable, immutable, portable forever — the mandate hash anchored on-chain, independently verifiable.

Settlement layers audit after the fact.
Settlement layers verify before money moves.