Skip to content
Gave

Gave for integrators

Gave turns your cardholders' spend into cashback, paid in stablecoins. You send us your card transactions as your processor reports them. We apply your cashback programs, reserve each reward in your vault, and tell your app about every change through signed webhooks. Your users then claim their rewards from your vault.

How it works

Fund your vault

Rewards are paid from a vault you fund in USDC or EURe. Each reward is reserved in it the moment it's earned, so a reward your user can claim is always backed. In the sandbox, the vault is simulated.

Send spend events

Forward each card transaction as it happens: authorizations, clearings, reversals and refunds. See Spend events.

Gave computes the rewards

Your programs set the rates. A purchase earns its reward when it clears. The reward is held through the refund window, then your user can claim it.

Stay in sync

Every change is a webhook, and you can read a user's balance at any time.

Environments

EnvironmentBase URL
Sandboxhttps://api.sandbox.gave.sh
ProductionNot open yet

Endpoints live under /v1, except the health check, GET /health, which answers 204. The sandbox's OpenAPI document is at /openapi.json.

Conventions

  • JSON in and out.
  • Amounts are strings of whole minor units, never decimals:
    • spend in its currency's minor unit: { "currency": "USD", "amount": "1250" } is 12.50 USD;
    • rewards in the token's smallest unit: USDC has 6 decimals, so { "asset": "USDC", "amount": "1000000" } is 1 USDC, and EURe has 18.
  • Times are ISO 8601 in UTC, such as 2026-10-11T09:30:00.000Z.
  • Your IDs (users, transactions) are yours: 1 to 128 printable ASCII characters, without spaces. Gave never needs your users' names or emails.
  • Unknown fields are refused with a 400, never silently dropped.
  • Retries are safe. Every write is idempotent: sending the same request again changes nothing. See Errors.

Start with the Quickstart.