REST API · v1

Developer Documentation

Integrate Sendatip into your own systems. Retrieve pools, transactions and analytics directly via our REST API.

Base URLhttps:/.sendatip.de/api/api/v1

Authentication

All API requests must be authenticated with a valid API Key. Send the key in the X-API-Key HTTP header.

You can create API Keys in your settings. Go to Settings →
curl https://api.sendatip.de/api/v1/pools \
  -H "X-API-Key: sk_live_your_key_here"
GET/v1/pools

List Pools

Returns all pools of your organisation – including a direct tip link per pool.

No query parameters

Example Request

curl https://api.sendatip.de/api/v1/pools \
  -H "X-API-Key: sk_live_your_key_here"

Example Response

{
  "success": true,
  "pools": [
    {
      "id": "uuid",
      "code": "HOTEL-BAR",
      "name": "Hotel Bar",
      "description": "Trinkgeld für die Hotelbar",
      "is_active": true,
      "created_at": "2026-01-15T10:00:00Z",
      "tip_url": "https://sendatip.de/tip/HOTEL-BAR"
    }
  ]
}
GET/v1/pools/:code/qr

Generate QR Code

Returns the QR code for a pool as a PNG image or SVG. Ideal for receipt printers, POS displays or print layouts.

ParameterTypPflichtBeschreibung
codestringPool code (e.g. HOTEL-BAR)
formatpng|svgOutput format: png (default) or svg
sizenumberWidth in pixels (100–1000, default: 300)

Example Request

# PNG herunterladen
curl "https://api.sendatip.de/api/v1/pools/HOTEL-BAR/qr?format=png&size=400" \
  -H "X-API-Key: sk_live_your_key_here" \
  --output qr-hotel-bar.png

# SVG als String
curl "https://api.sendatip.de/api/v1/pools/HOTEL-BAR/qr?format=svg" \
  -H "X-API-Key: sk_live_your_key_here"
GET/v1/transactions

Transactions

Returns completed transactions for your organisation. Filterable by date and pool – ideal for accounting or export.

ParameterTypPflichtBeschreibung
fromdateStart date (YYYY-MM-DD)
todateEnd date (YYYY-MM-DD)
pool_codestringOnly transactions from a specific pool
limitnumberNumber of results (max. 500, default: 50)
offsetnumberOffset for pagination (default: 0)

Example Request

curl "https://api.sendatip.de/api/v1/transactions?from=2026-01-01&to=2026-06-30&limit=100" \
  -H "X-API-Key: sk_live_your_key_here"

Example Response

{
  "success": true,
  "transactions": [
    {
      "id": "uuid",
      "amount": 500,
      "currency": "eur",
      "status": "completed",
      "created_at": "2026-06-15T14:23:00Z",
      "pool": { "code": "HOTEL-BAR", "name": "Hotel Bar" },
      "recipient": { "display_name": "Maria M.", "email": "maria@example.com" }
    }
  ],
  "meta": { "limit": 100, "offset": 0 }
}
GET/v1/analytics/summary

Analytics Summary

Returns a summary for the selected period: total revenue, transaction count, average tip, and top-performing pool.

ParameterTypPflichtBeschreibung
fromdateStart date (YYYY-MM-DD)
todateEnd date (YYYY-MM-DD)

Example Request

curl "https://api.sendatip.de/api/v1/analytics/summary?from=2026-01-01&to=2026-06-30" \
  -H "X-API-Key: sk_live_your_key_here"

Example Response

{
  "success": true,
  "summary": {
    "total_amount": 125400,
    "transaction_count": 312,
    "average_amount": 402,
    "currency": "eur",
    "top_pool": {
      "code": "HOTEL-BAR",
      "name": "Hotel Bar",
      "amount": 48200
    }
  }
}

Error Codes

All errors are returned as JSON with error.code and error.message fields.

HTTPCodeMeaning
401INVALID_API_KEYAPI Key missing, invalid or wrong format
401API_KEY_REVOKEDAPI Key has been revoked
404POOL_NOT_FOUNDPool with this code does not exist or does not belong to your organisation
429RATE_LIMITEDToo many requests – please observe rate limiting
500FETCH_ERRORInternal server error