Skip to content
Veral · Verification Authority Layer

Refund Policy

Veral certificates are paid issuances. When we cannot deliver the certificate you paid for, we refund the on-chain USDC payment to the wallet that sent it. Three refund-eligible cases and one non-refundable case are named below, alongside the SLA we hold ourselves to.

What we refund

Three named cases. Each one has an internal audit code; if you email support quoting the code you see in your cert request, the treasurer is looking at the same row.

  1. Case 1audit: issuance refused
    We refused to issue.
    Veral runs the engine, the engine determines the subject is too thin to certify or sources erred out, we refuse the issuance. Your USDC is refunded within 5 business days, treasury-side; you don't need to ask.
  2. Case 2audit: payer_wallet_mismatch
    The payment couldn't be applied.
    The on-chain payer wallet doesn't match the customer wallet you typed, or the amount didn't match the quote. Same 5-day refund window.
  3. Case 3audit: stuck-row sweep refused
    Our infrastructure failed mid-flight.
    The stuck-row sweeper caught your request and we couldn't deliver. Same 5-day refund window.

What you will see

When you will get it

On Sepolia (testnet), refunds are completed within 5 business days of detection. Detection happens automatically the moment a paid request reaches a terminal non-issued state; the refund itself is a manual treasury action while we are on Sepolia testnet.

MetricToday
Detection to settlement≤ 5 business days
Refund channelSame wallet, same chain, same token

If your refund does not arrive

What we don't refund

A refund covers USDC payments Veral captured but cannot settle into a certificate. It does NOT cover on-chain costs you paid before that capture happened.

  1. Gas you paid to attempt a malformed transaction we rejected before crediting it.
    The wallet handshake costs gas regardless of outcome, and the malformed transaction was rejected by the webhook before the USDC moved to us, so there's nothing to refund on our side. The pre-flight checks on /cert/new are there to prevent this. (If gas was paid and the USDC DID land with us, that's case 2 above and we refund the USDC.)

Why we do not auto-refund

Refunds for testnet certificates are rare enough that manual settlement is the appropriate posture: an on-chain refund contract able to send the treasury USDC needs the same custody review as the deploy key, and Sepolia volume does not justify that surface yet. Auto-refund infrastructure is on the roadmap when volume justifies it.

We store the country and region of cert purchases (derived via Vercel edge from request IP) for aggregate analytics. We do not store the IP address or city-level location.

refund@veral.tech