REST API · v1
Developer Documentation
Integrate Sendatip into your own systems. Retrieve pools, transactions and analytics directly via our REST API.
Base URL
https:/.sendatip.de/api/api/v1Authentication
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/poolsList 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/qrGenerate QR Code
Returns the QR code for a pool as a PNG image or SVG. Ideal for receipt printers, POS displays or print layouts.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| code | string | ✓ | Pool code (e.g. HOTEL-BAR) |
| format | png|svg | – | Output format: png (default) or svg |
| size | number | – | Width 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/transactionsTransactions
Returns completed transactions for your organisation. Filterable by date and pool – ideal for accounting or export.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| from | date | – | Start date (YYYY-MM-DD) |
| to | date | – | End date (YYYY-MM-DD) |
| pool_code | string | – | Only transactions from a specific pool |
| limit | number | – | Number of results (max. 500, default: 50) |
| offset | number | – | Offset 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/summaryAnalytics Summary
Returns a summary for the selected period: total revenue, transaction count, average tip, and top-performing pool.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| from | date | – | Start date (YYYY-MM-DD) |
| to | date | – | End 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.
| HTTP | Code | Meaning |
|---|---|---|
| 401 | INVALID_API_KEY | API Key missing, invalid or wrong format |
| 401 | API_KEY_REVOKED | API Key has been revoked |
| 404 | POOL_NOT_FOUND | Pool with this code does not exist or does not belong to your organisation |
| 429 | RATE_LIMITED | Too many requests – please observe rate limiting |
| 500 | FETCH_ERROR | Internal server error |