Skip to main content
Collect closes the loop on agent-native economies — your agent doesn’t only spend, it can also earn. Issue a payment request and the counterparty pays from another Ovra wallet (instant, free) or via SEPA with reference matching (external).
Internal Ovra-to-Ovra works today. External SEPA inbound matching is on the roadmap and is currently rejected by the /settle endpoint. See the status table below.

Why this matters

If your agent does work that someone else paid for — services, goods, microtransactions, API calls — you need a way to collect. Without Collect, “agent payments” is a one-way street. With it, agents can run businesses.

The payment-request model

Operations

The pillar is named Collect but the routes still mount under /claim/*. The route rename is upcoming tech-debt; the URL contract is stable.

Create a request

Response:

Settle path matrix

Counterparty has an Ovra wallet. Pass counterpartyOwnerId in the create call. The counterparty calls POST /claim/requests/:id/settle with sourceWalletId. We run the debit and credit in a single transaction:
  • SQL BEGIN
  • UPDATE wallets SET balance_euros = balance_euros - amount WHERE id = :src AND balance_euros >= amount
  • UPDATE wallets SET balance_euros = balance_euros + amount WHERE id = :dst
  • INSERT ledger_entries (debit + credit), transfers row, mark request paid
  • COMMIT
  • Fire claim.request.paid webhook
Result: instant, free, fully auditable. ✅ Production-ready.

Surfaces

Webhooks

Subscribe to these events to react in real time:
  • claim.request.created
  • claim.request.paid
  • claim.request.expired
  • claim.request.cancelled
See Webhooks for delivery, retries, and signature verification.

Next

Accounts

Wallets, IBANs, transfers — where the funds live.

Webhooks

Fire-and-forget delivery for claim.request.* events.