Skip to main content

Collect checkout

A headless checkout endpoint built for embedding directly in your own app or website — it's the only endpoint that doesn't use a normal vltro_live_... server key.

Authentication — Collect keys only

Authorization: Bearer vltro_pk_xxxxxxxxxxxx

Collect keys (vltro_pk_...) are safe to ship in client-side/browser code. They can only call this one endpoint, and can never read account data or perform any other action — see Authentication.

Create a one-off checkout

POST /api/v1/collect/checkout
FieldTypeRequiredNotes
amount_usdcnumberyesPositive
descriptionstringnoMax 200 chars
curl -X POST https://veltro.online/api/v1/collect/checkout \
-H "Authorization: Bearer vltro_pk_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{ "amount_usdc": 49.99, "description": "Order #10231" }'
{
"data": {
"slug": "collect-xK2p9qLmZ1",
"pay_url": "https://veltro.online/pay/collect-xK2p9qLmZ1",
"to": "0x...",
"data": "0x...",
"value": "0"
}
}

Two ways to use the response:

  1. Redirect the customer to pay_url — a fully hosted Veltro checkout page.
  2. Fully headless — use { to, data, value } directly with your own wallet-connect flow. Veltro never signs this; your customer's wallet does.

Funds always go to your account's primary wallet — a Collect key cannot redirect payment elsewhere. If your account has no primary wallet configured, this returns 409.