Integration proposal Confidential
Moneva × Manteca · Integration proposal

On-chain settlement for interoperable QR payments.

How Moneva intends to fund every QR payment at confirmation, per transaction, on-chain. Prepared for the Plus Billetera SA team.

POST /payment-locks POST /synthetics/qr-payment SYNTHETIC_STATUS_UPDATE
01

The agreement defines the payment flow end to end.

Scan, quote, confirm, execute, notify. Clause 2.2 of the agreement, exactly as the APIs expose it.

Merchant QR to settled payment · six steps
payment flow
End user · app
Moneva Platform
Manteca API
Interoperable rails
1

Scan the QR

The end user scans the merchant's interoperable QR inside the Moneva App or an app built on the Moneva Platform.

scan
2

POST /payment-locks

Returns the quote and a lock code. Amounts are fixed for the validity window.

quote
3

Confirm in the app

The user approves the exact amount and rate before anything moves.

confirm
4

POST /synthetics/qr-payment

Executes the locked payment against the lock code.

execute
5

Merchant paid

The merchant receives the payment on interoperable rails.

payout
6

SYNTHETIC_STATUS_UPDATE

The webhook reports the final status back to Moneva.

event
02

For the end user it is a scan, a glance, and a confirm.

B2C at the counter, all of the machinery underneath. A worked example, amounts illustrative.

0s

Scan at the counter

Dinner in Palermo. The user scans the restaurant's interoperable QR, the same code every wallet in Argentina scans.

2s

One clear quote

The app shows ARS 14,250.00 and exactly USDC 10.05 to be debited. Every fee is already inside; the number on screen is the number that moves.

3s

Biometric confirm

Face or fingerprint approves it. Nothing has moved until this moment, and nothing else can move after it.

~8s

Done on both sides

The merchant sees the payment approved on their own terminal, like any QR payment they take all day. The user keeps a receipt with the same reference we all reconcile by.

ReceiptPaid
MerchantParrilla · Palermo, CABA
AmountARS 14,250.00
Paid withUSDC 10.05
Rate locked19:42:03
Confirmed on-chain19:42:07
Merchant paid19:42:11
ReferenceLK-83F2-71

One reference from the user's receipt to your ledger to the chain.

03

Every payment settles to your wallet when the user pays.

The lock code ties the three legs together: quote, on-chain transfer, execution. Manteca is covered at every step.

1

Lock the amounts

The payment lock fixes the ARS amount and the stablecoin amount for its validity window. The quote the end user confirms already carries every fee.

2

Funds move on-chain

On confirmation the stablecoin moves from the end user's wallet to your settlement address, referenced to the lock code, with your fee as its own leg.

3

Execute only once confirmed

We call POST /synthetics/qr-payment only once the transfer is confirmed on-chain, seconds on the settlement network, and you verify receipt at your own address before paying out.

4

You pay the merchant

Instantly, from your principal account; the payment's funds arrive to you carrying the same lock code.

settlement · one payment
// lock response
{ "ars_amount":   14250.00,
  "asset":        "USDC",
  "asset_amount": 10.05,
  "lock_code":    "LK-83F2-71",
  "expires_in":   120 }

// on-chain transfer · every fee settled in the same transaction
{ "reference": "LK-83F2-71",
  "legs": [
    { "to": "0xA1b2…M4nt", "amount": 10.05 },  // payment
    { "to": "0xA1b2…M4nt", "amount":  0.02 },  // your 0.20%
    { "to": "0x9Fc4…M0nv", "amount":  0.05 }   // platform fee
  ],
  "status":    "CONFIRMED" }

// webhook
SYNTHETIC_STATUS_UPDATE · SUCCESS

Values illustrative. The lock's quote is the source of truth for both amounts.

04

Every payment is protected end to end, by construction.

Both sides read the same on-chain event independently. Nothing in the flow settles on trust.

Tamper-proof transfer

The app builds the transfer from the lock itself: exact amount, your address, the lock code. The user confirms biometrically and our infrastructure broadcasts. There is nothing to alter, replace, or underpay.

Single-use lock code

One lock code means one quote, one transfer, one execution, one refund at most. Idempotency keys guard every hop, so double taps, retries and replays cannot create a second payment.

Confirmed before execution

Execution waits for on-chain confirmation, and you verify receipt at your own address before paying the merchant. Money you already hold is the only trigger.

Bounded failure

No confirmation inside the lock window means no execution. A failed execution after funds land returns them on-chain to the user, referenced to the same lock code.

one lock_code == one quote == one transfer == one execution
05

Settling per transaction is the safest model for both sides.

Your capital comes back the moment each payment happens, fees included, and the commercial terms do not move.

0
Credit exposure
You are paid per transaction, at payment time.
T+0
Liquidity
Funds arrive as payments happen.
1:1
Reconciliation
One on-chain transfer per payment, carrying its lock code.
0.20%
Paid on-chain
Your rate is unchanged; it arrives inside each transfer instead of a monthly bill.
transfer.reference == lock_code
06

Eight decisions turn this into a one-page annex.

Each row is an operational default we propose; confirm or amend and it becomes the annex.

Settlement asset and chainYour preference; a stablecoin on a low-fee network.
Settlement addressA single address you control, rotated on written notice.
Quote denominationThe lock returns the stablecoin amount, fixed for the lock's validity.
Refund pathFailed execution after funds land returns on-chain to the user, referenced to the lock code, on an agreed timeline.
ReconciliationWeekly statement of transfers vs executed payments, by lock code.
Confirmation standardExecution and merchant payout only after the transfer is confirmed on-chain; a stronger threshold for large amounts if you want one.
FeesYour 0.20% travels as its own leg inside each transfer; the monthly invoice becomes a reconciliation statement.
ScopeThe Moneva App today, and apps built on the Moneva Platform as they go live, under Moneva's compliance and verification.
PaperworkA short operational annex to the signed agreement.
07

This mechanism already runs in production at Moneva.

Nothing here is speculative. This is the settlement standard we already operate with our other payment partners across the network, applied to QR.

User wallet on-chain transfer · lock code Manteca wallet merchant paid
Moneva never holds the funds. You receive them per transaction, the moment the user pays.
Milestone 01

Annex agreed

  • The eight decisions, one page, attached to the signed agreement
  • Fee rate untouched at 0.20%, collected on-chain per payment
Milestone 02

Sandbox integration

  • Lock, transfer, execute, webhook exercised end to end
  • Refund path tested with funds landed and execution failed
Milestone 03

First live QR payment

  • One real merchant payment, funds received per transaction
  • Weekly reconciliation statement by lock code from day one

The rest of the agreement reads well from our side; two small legal notes follow separately. We settle fee legs inside transfers in production today; this annex applies the same mechanism to QR.

Cover 1 / 8