curl
curl -H 'Authorization: Bearer tgm_test_...' https://trinkgeldmeister.com/api/v1/tenant
curl -X PATCH https://trinkgeldmeister.com/api/v1/tenant -H 'Authorization: Bearer tgm_test_...' -H 'Content-Type: application/json' -d '{"report_email":"finance@example.test"}'
curl -H 'Authorization: Bearer tgm_test_...' https://trinkgeldmeister.com/api/v1/employees
curl -X POST https://trinkgeldmeister.com/api/v1/employees -H 'Authorization: Bearer tgm_test_...' -H 'Content-Type: application/json' -d '{"operator_id":"17","name":"Mira Keller"}'
curl -X PATCH https://trinkgeldmeister.com/api/v1/employees/1 -H 'Authorization: Bearer tgm_test_...' -H 'Content-Type: application/json' -d '{"status":"active"}'
curl -H 'Authorization: Bearer tgm_test_...' https://trinkgeldmeister.com/api/v1/providers
curl -X POST https://trinkgeldmeister.com/api/v1/imports -H 'Authorization: Bearer tgm_test_...' -H 'Content-Type: application/json' -H 'Idempotency-Key: import-001' -d '{"name":"Mai","csv":"Bediener Nr,Trinkgeld EUR,Zweck\n17,51.25,Trinkgeld Mai","mapping":{"operator_id":"Bediener Nr","amount":"Trinkgeld EUR","transfer_text":"Zweck"}}'
curl -X POST https://trinkgeldmeister.com/api/v1/payout-runs -H 'Authorization: Bearer tgm_test_...' -H 'Content-Type: application/json' -H 'Idempotency-Key: run-001' -d '{"name":"Mai","items":[{"operator_id":"17","amount":5125,"currency":"EUR"}]}'
curl -H 'Authorization: Bearer tgm_test_...' https://trinkgeldmeister.com/api/v1/payout-runs
curl -H 'Authorization: Bearer tgm_test_...' https://trinkgeldmeister.com/api/v1/payout-runs/1
curl -X POST https://trinkgeldmeister.com/api/v1/payout-runs/1/dry-run -H 'Authorization: Bearer tgm_test_...' -H 'Idempotency-Key: dry-001'
curl -X POST https://trinkgeldmeister.com/api/v1/payout-runs/1/approve -H 'Authorization: Bearer tgm_test_...' -H 'Idempotency-Key: approve-001'
curl -X POST https://trinkgeldmeister.com/api/v1/payout-runs/1/execute -H 'Authorization: Bearer tgm_test_...' -H 'Idempotency-Key: execute-001'
curl -H 'Authorization: Bearer tgm_test_...' https://trinkgeldmeister.com/api/v1/journal
go
package main
import ("bytes"; "encoding/json"; "fmt"; "io"; "log"; "net/http")
func main() {
body, _ := json.Marshal(map[string]any{"name":"Mai","items":[]map[string]any{{"operator_id":"17","amount":5125,"currency":"EUR"}}})
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/payout-runs", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Idempotency-Key", "run-001")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
javascript
const headers = { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" };
await fetch("https://trinkgeldmeister.com/api/v1/tenant", { headers });
await fetch("https://trinkgeldmeister.com/api/v1/tenant", { method:"PATCH", headers, body:JSON.stringify({report_email:"finance@example.test"}) });
await fetch("https://trinkgeldmeister.com/api/v1/employees", { headers });
await fetch("https://trinkgeldmeister.com/api/v1/employees", { method:"POST", headers, body:JSON.stringify({operator_id:"17", name:"Mira Keller"}) });
await fetch("https://trinkgeldmeister.com/api/v1/employees/1", { method:"PATCH", headers, body:JSON.stringify({status:"active"}) });
await fetch("https://trinkgeldmeister.com/api/v1/providers", { headers });
await fetch("https://trinkgeldmeister.com/api/v1/imports", { method:"POST", headers:{...headers,"Idempotency-Key":"import-001"}, body:JSON.stringify({name:"Mai", csv:"Bediener Nr,Trinkgeld EUR,Zweck\n17,51.25,Trinkgeld Mai", mapping:{operator_id:"Bediener Nr", amount:"Trinkgeld EUR", transfer_text:"Zweck"}}) });
await fetch("https://trinkgeldmeister.com/api/v1/payout-runs", { method:"POST", headers:{...headers,"Idempotency-Key":"run-001"}, body:JSON.stringify({name:"Mai", items:[{operator_id:"17",amount:5125,currency:"EUR"}]}) });
await fetch("https://trinkgeldmeister.com/api/v1/payout-runs", { headers });
await fetch("https://trinkgeldmeister.com/api/v1/payout-runs/1", { headers });
await fetch("https://trinkgeldmeister.com/api/v1/payout-runs/1/dry-run", { method:"POST", headers:{...headers,"Idempotency-Key":"dry-001"} });
await fetch("https://trinkgeldmeister.com/api/v1/payout-runs/1/approve", { method:"POST", headers:{...headers,"Idempotency-Key":"approve-001"} });
await fetch("https://trinkgeldmeister.com/api/v1/payout-runs/1/execute", { method:"POST", headers:{...headers,"Idempotency-Key":"execute-001"} });
await fetch("https://trinkgeldmeister.com/api/v1/journal", { headers });
python
import requests
headers={"Authorization":"Bearer tgm_test_..."}
requests.get("https://trinkgeldmeister.com/api/v1/tenant", headers=headers)
requests.patch("https://trinkgeldmeister.com/api/v1/tenant", headers=headers, json={"report_email":"finance@example.test"})
requests.get("https://trinkgeldmeister.com/api/v1/employees", headers=headers)
requests.post("https://trinkgeldmeister.com/api/v1/employees", headers=headers, json={"operator_id":"17","name":"Mira Keller"})
requests.patch("https://trinkgeldmeister.com/api/v1/employees/1", headers=headers, json={"status":"active"})
requests.get("https://trinkgeldmeister.com/api/v1/providers", headers=headers)
requests.post("https://trinkgeldmeister.com/api/v1/imports", headers={**headers,"Idempotency-Key":"import-001"}, json={"name":"Mai","csv":"Bediener Nr,Trinkgeld EUR,Zweck\n17,51.25,Trinkgeld Mai","mapping":{"operator_id":"Bediener Nr","amount":"Trinkgeld EUR","transfer_text":"Zweck"}})
requests.post("https://trinkgeldmeister.com/api/v1/payout-runs", headers={**headers,"Idempotency-Key":"run-001"}, json={"name":"Mai","items":[{"operator_id":"17","amount":5125,"currency":"EUR"}]})
requests.get("https://trinkgeldmeister.com/api/v1/payout-runs", headers=headers)
requests.get("https://trinkgeldmeister.com/api/v1/payout-runs/1", headers=headers)
requests.post("https://trinkgeldmeister.com/api/v1/payout-runs/1/dry-run", headers={**headers,"Idempotency-Key":"dry-001"})
requests.post("https://trinkgeldmeister.com/api/v1/payout-runs/1/approve", headers={**headers,"Idempotency-Key":"approve-001"})
requests.post("https://trinkgeldmeister.com/api/v1/payout-runs/1/execute", headers={**headers,"Idempotency-Key":"execute-001"})
requests.get("https://trinkgeldmeister.com/api/v1/journal", headers=headers)
rust
use reqwest::Client;
use serde_json::json;
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let res = Client::new()
.post("https://trinkgeldmeister.com/api/v1/payout-runs")
.bearer_auth("tgm_test_...")
.header("Idempotency-Key", "run-001")
.json(&json!({"name":"Mai","items":[{"operator_id":"17","amount":5125,"currency":"EUR"}]}))
.send().await?;
println!("{} {}", res.status(), res.text().await?);
Ok(())
}
swift
import Foundation
let apiKey = "tgm_test_..."
let base = "https://trinkgeldmeister.com"
let payload = ["name":"Mai","items":[["operator_id":"17","amount":5125,"currency":"EUR"]]] as [String : Any]
var request = URLRequest(url: URL(string: "\(base)/api/v1/payout-runs")!)
request.httpMethod = "POST"
request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue("run-001", forHTTPHeaderField: "Idempotency-Key")
request.httpBody = try JSONSerialization.data(withJSONObject: payload)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
GET
/api/v1/tenant
tenant.read
Liest Stammdaten, Plan und Transfertext des aktuellen Mandanten.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/tenant' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/tenant", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/tenant", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/tenant")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/tenant", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/tenant")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
PATCH
/api/v1/tenant
tenant.write
Aktualisiert Report-Email oder Überweisungstext-Vorlage.
curl
curl -X PATCH 'https://trinkgeldmeister.com/api/v1/tenant' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"report_email":"finance@example.test","transfer_text_template":"Trinkgeld {{tenant_name}} {{date}}"}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("PATCH", "https://trinkgeldmeister.com/api/v1/tenant", headers=headers, data="{\"report_email\":\"finance@example.test\",\"transfer_text_template\":\"Trinkgeld {{tenant_name}} {{date}}\"}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/tenant", {
method: "PATCH",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"report_email":"finance@example.test","transfer_text_template":"Trinkgeld {{tenant_name}} {{date}}"})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"report_email":"finance@example.test","transfer_text_template":"Trinkgeld {{tenant_name}} {{date}}"}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/tenant")!)
request.httpMethod = "PATCH"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"report_email\":\"finance@example.test\",\"transfer_text_template\":\"Trinkgeld {{tenant_name}} {{date}}\"}")
req, _ := http.NewRequest("PATCH", "https://trinkgeldmeister.com/api/v1/tenant", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::PATCH, "https://trinkgeldmeister.com/api/v1/tenant")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"report_email\":\"finance@example.test\",\"transfer_text_template\":\"Trinkgeld {{tenant_name}} {{date}}\"}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/employees
employee.read
Listet Mitarbeiter des API-Key-Mandanten.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/employees' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/employees", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/employees", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/employees")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/employees", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/employees")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/employees
employee.write
Legt einen Mitarbeiter inklusive Operator-ID, Handy und Auszahlungskonto an.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/employees' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"operator_id":"99","name":"API Mitarbeiter","phone":"0170 1234567","status":"active","iban":"DE89370400440532013000","account_holder":"API Mitarbeiter"}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/employees", headers=headers, data="{\"operator_id\":\"99\",\"name\":\"API Mitarbeiter\",\"phone\":\"0170 1234567\",\"status\":\"active\",\"iban\":\"DE89370400440532013000\",\"account_holder\":\"API Mitarbeiter\"}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/employees", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"operator_id":"99","name":"API Mitarbeiter","phone":"0170 1234567","status":"active","iban":"DE89370400440532013000","account_holder":"API Mitarbeiter"})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"operator_id":"99","name":"API Mitarbeiter","phone":"0170 1234567","status":"active","iban":"DE89370400440532013000","account_holder":"API Mitarbeiter"}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/employees")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"operator_id\":\"99\",\"name\":\"API Mitarbeiter\",\"phone\":\"0170 1234567\",\"status\":\"active\",\"iban\":\"DE89370400440532013000\",\"account_holder\":\"API Mitarbeiter\"}")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/employees", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/employees")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"operator_id\":\"99\",\"name\":\"API Mitarbeiter\",\"phone\":\"0170 1234567\",\"status\":\"active\",\"iban\":\"DE89370400440532013000\",\"account_holder\":\"API Mitarbeiter\"}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/employees/1
employee.read
Liest einen Mitarbeiter innerhalb des API-Key-Mandanten.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/employees/1' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/employees/1", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/employees/1", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/employees/1")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/employees/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/employees/1")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
PATCH
/api/v1/employees/1
employee.write
Aktualisiert einen Mitarbeiter innerhalb des Mandanten.
curl
curl -X PATCH 'https://trinkgeldmeister.com/api/v1/employees/1' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"location":"Bar","status":"active","phone":"0170 7654321"}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("PATCH", "https://trinkgeldmeister.com/api/v1/employees/1", headers=headers, data="{\"location\":\"Bar\",\"status\":\"active\",\"phone\":\"0170 7654321\"}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/employees/1", {
method: "PATCH",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"location":"Bar","status":"active","phone":"0170 7654321"})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"location":"Bar","status":"active","phone":"0170 7654321"}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/employees/1")!)
request.httpMethod = "PATCH"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"location\":\"Bar\",\"status\":\"active\",\"phone\":\"0170 7654321\"}")
req, _ := http.NewRequest("PATCH", "https://trinkgeldmeister.com/api/v1/employees/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::PATCH, "https://trinkgeldmeister.com/api/v1/employees/1")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"location\":\"Bar\",\"status\":\"active\",\"phone\":\"0170 7654321\"}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
DELETE
/api/v1/employees/1
employee.write
Setzt einen Mitarbeiter innerhalb des Mandanten auf deleted.
curl
curl -X DELETE 'https://trinkgeldmeister.com/api/v1/employees/1' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("DELETE", "https://trinkgeldmeister.com/api/v1/employees/1", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/employees/1", {
method: "DELETE",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/employees/1")!)
request.httpMethod = "DELETE"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("DELETE", "https://trinkgeldmeister.com/api/v1/employees/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::DELETE, "https://trinkgeldmeister.com/api/v1/employees/1")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/employees/import
employee.write
Importiert oder aktualisiert Mitarbeiter per CSV mit Operator-ID oder Mitarbeiter-Referenz.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/employees/import' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"csv":"operator_id,name,email,phone,status,iban,account_holder\n77,API Import,api-import@example.test,0170 1234567,active,DE89370400440532013000,API Import\n"}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/employees/import", headers=headers, data="{\"csv\":\"operator_id,name,email,phone,status,iban,account_holder\\n77,API Import,api-import@example.test,0170 1234567,active,DE89370400440532013000,API Import\\n\"}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/employees/import", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"csv":"operator_id,name,email,phone,status,iban,account_holder\n77,API Import,api-import@example.test,0170 1234567,active,DE89370400440532013000,API Import\n"})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"csv":"operator_id,name,email,phone,status,iban,account_holder\n77,API Import,api-import@example.test,0170 1234567,active,DE89370400440532013000,API Import\n"}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/employees/import")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"csv\":\"operator_id,name,email,phone,status,iban,account_holder\\n77,API Import,api-import@example.test,0170 1234567,active,DE89370400440532013000,API Import\\n\"}")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/employees/import", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/employees/import")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"csv\":\"operator_id,name,email,phone,status,iban,account_holder\\n77,API Import,api-import@example.test,0170 1234567,active,DE89370400440532013000,API Import\\n\"}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/providers
provider.read
Listet konfigurierte Provider-Verbindungen.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/providers' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/providers", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/providers", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/providers")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/providers", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/providers")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/providers
provider.write
Legt eine Provider-Verbindung mit Secret-Referenzen an.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/providers' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"provider":"stripe_global_payouts","display_name":"Stripe Sandbox","mode":"sandbox","credential_ref":"env:STRIPE_SECRET_KEY","webhook_secret_ref":"env:STRIPE_GLOBAL_PAYOUTS_WEBHOOK_SECRET","financial_account_ref":"fa_test","active":false}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/providers", headers=headers, data="{\"provider\":\"stripe_global_payouts\",\"display_name\":\"Stripe Sandbox\",\"mode\":\"sandbox\",\"credential_ref\":\"env:STRIPE_SECRET_KEY\",\"webhook_secret_ref\":\"env:STRIPE_GLOBAL_PAYOUTS_WEBHOOK_SECRET\",\"financial_account_ref\":\"fa_test\",\"active\":false}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/providers", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"provider":"stripe_global_payouts","display_name":"Stripe Sandbox","mode":"sandbox","credential_ref":"env:STRIPE_SECRET_KEY","webhook_secret_ref":"env:STRIPE_GLOBAL_PAYOUTS_WEBHOOK_SECRET","financial_account_ref":"fa_test","active":false})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"provider":"stripe_global_payouts","display_name":"Stripe Sandbox","mode":"sandbox","credential_ref":"env:STRIPE_SECRET_KEY","webhook_secret_ref":"env:STRIPE_GLOBAL_PAYOUTS_WEBHOOK_SECRET","financial_account_ref":"fa_test","active":false}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/providers")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"provider\":\"stripe_global_payouts\",\"display_name\":\"Stripe Sandbox\",\"mode\":\"sandbox\",\"credential_ref\":\"env:STRIPE_SECRET_KEY\",\"webhook_secret_ref\":\"env:STRIPE_GLOBAL_PAYOUTS_WEBHOOK_SECRET\",\"financial_account_ref\":\"fa_test\",\"active\":false}")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/providers", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/providers")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"provider\":\"stripe_global_payouts\",\"display_name\":\"Stripe Sandbox\",\"mode\":\"sandbox\",\"credential_ref\":\"env:STRIPE_SECRET_KEY\",\"webhook_secret_ref\":\"env:STRIPE_GLOBAL_PAYOUTS_WEBHOOK_SECRET\",\"financial_account_ref\":\"fa_test\",\"active\":false}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
PATCH
/api/v1/providers/1
provider.write
Aktualisiert Anzeigename, Status, Modus oder Secret-Referenzen einer Provider-Verbindung.
curl
curl -X PATCH 'https://trinkgeldmeister.com/api/v1/providers/1' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"display_name":"Stripe Sandbox Updated","active":true}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("PATCH", "https://trinkgeldmeister.com/api/v1/providers/1", headers=headers, data="{\"display_name\":\"Stripe Sandbox Updated\",\"active\":true}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/providers/1", {
method: "PATCH",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"display_name":"Stripe Sandbox Updated","active":true})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"display_name":"Stripe Sandbox Updated","active":true}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/providers/1")!)
request.httpMethod = "PATCH"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"display_name\":\"Stripe Sandbox Updated\",\"active\":true}")
req, _ := http.NewRequest("PATCH", "https://trinkgeldmeister.com/api/v1/providers/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::PATCH, "https://trinkgeldmeister.com/api/v1/providers/1")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"display_name\":\"Stripe Sandbox Updated\",\"active\":true}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
DELETE
/api/v1/providers/1
provider.write
Deaktiviert eine Provider-Verbindung fachlich und erzeugt ein `provider.disabled` Event.
curl
curl -X DELETE 'https://trinkgeldmeister.com/api/v1/providers/1' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("DELETE", "https://trinkgeldmeister.com/api/v1/providers/1", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/providers/1", {
method: "DELETE",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/providers/1")!)
request.httpMethod = "DELETE"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("DELETE", "https://trinkgeldmeister.com/api/v1/providers/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::DELETE, "https://trinkgeldmeister.com/api/v1/providers/1")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/providers/1/test
provider.write
Prüft Key-, Modus-, Webhook- und Funding-Kontext der Provider-Verbindung.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/providers/1/test' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/providers/1/test", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/providers/1/test", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/providers/1/test")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/providers/1/test", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/providers/1/test")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/providers/1/rotate-secret-ref
provider.write
Ersetzt Credential-, Webhook- oder Funding-Referenzen, ohne Secret-Werte offenzulegen.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/providers/1/rotate-secret-ref' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"credential_ref":"env:STRIPE_SECRET_KEY_NEXT"}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/providers/1/rotate-secret-ref", headers=headers, data="{\"credential_ref\":\"env:STRIPE_SECRET_KEY_NEXT\"}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/providers/1/rotate-secret-ref", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"credential_ref":"env:STRIPE_SECRET_KEY_NEXT"})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"credential_ref":"env:STRIPE_SECRET_KEY_NEXT"}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/providers/1/rotate-secret-ref")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"credential_ref\":\"env:STRIPE_SECRET_KEY_NEXT\"}")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/providers/1/rotate-secret-ref", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/providers/1/rotate-secret-ref")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"credential_ref\":\"env:STRIPE_SECRET_KEY_NEXT\"}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/imports
import.write
Parst eine CSV-Zahlungsliste mit optionalem Spaltenmapping und erzeugt einen geprüften Auszahlungslauf.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/imports' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Idempotency-Key: idem-post-api-v1-imports' \
-H 'Content-Type: application/json' \
-d '{"name":"Mai Trinkgeld","csv":"Bediener Nr,Trinkgeld EUR,Zweck\n17,51.25,Trinkgeld Mai\n","mapping":{"operator_id":"Bediener Nr","amount":"Trinkgeld EUR","transfer_text":"Zweck"}}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json","Idempotency-Key":"idem-post-api-v1-imports"}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/imports", headers=headers, data="{\"name\":\"Mai Trinkgeld\",\"csv\":\"Bediener Nr,Trinkgeld EUR,Zweck\\n17,51.25,Trinkgeld Mai\\n\",\"mapping\":{\"operator_id\":\"Bediener Nr\",\"amount\":\"Trinkgeld EUR\",\"transfer_text\":\"Zweck\"}}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/imports", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json", "Idempotency-Key": "idem-post-api-v1-imports" },
body: JSON.stringify({"name":"Mai Trinkgeld","csv":"Bediener Nr,Trinkgeld EUR,Zweck\n17,51.25,Trinkgeld Mai\n","mapping":{"operator_id":"Bediener Nr","amount":"Trinkgeld EUR","transfer_text":"Zweck"}})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"name":"Mai Trinkgeld","csv":"Bediener Nr,Trinkgeld EUR,Zweck\n17,51.25,Trinkgeld Mai\n","mapping":{"operator_id":"Bediener Nr","amount":"Trinkgeld EUR","transfer_text":"Zweck"}}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/imports")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue("idem-post-api-v1-imports", forHTTPHeaderField: "Idempotency-Key")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"name\":\"Mai Trinkgeld\",\"csv\":\"Bediener Nr,Trinkgeld EUR,Zweck\\n17,51.25,Trinkgeld Mai\\n\",\"mapping\":{\"operator_id\":\"Bediener Nr\",\"amount\":\"Trinkgeld EUR\",\"transfer_text\":\"Zweck\"}}")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/imports", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Idempotency-Key", "idem-post-api-v1-imports")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/imports")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.header("Idempotency-Key", "idem-post-api-v1-imports")
.body("{\"name\":\"Mai Trinkgeld\",\"csv\":\"Bediener Nr,Trinkgeld EUR,Zweck\\n17,51.25,Trinkgeld Mai\\n\",\"mapping\":{\"operator_id\":\"Bediener Nr\",\"amount\":\"Trinkgeld EUR\",\"transfer_text\":\"Zweck\"}}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/imports/imp_1
payout.read
Liest Importstatus und den verknüpften Auszahlungslauf.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/imports/imp_1' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/imports/imp_1", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/imports/imp_1", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/imports/imp_1")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/imports/imp_1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/imports/imp_1")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/imports/imp_1/rows
payout.read
Listet die normalisierten Importzeilen aus den gespeicherten Auszahlungspositionen.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/imports/imp_1/rows' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/imports/imp_1/rows", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/imports/imp_1/rows", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/imports/imp_1/rows")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/imports/imp_1/rows", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/imports/imp_1/rows")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/imports/imp_1/validate
import.write
Gibt den aktuellen Validierungsstatus des Imports zurück.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/imports/imp_1/validate' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/imports/imp_1/validate", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/imports/imp_1/validate", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/imports/imp_1/validate")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/imports/imp_1/validate", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/imports/imp_1/validate")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/payout-runs
payout.write
Erzeugt einen Lauf aus JSON-Positionen.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/payout-runs' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Idempotency-Key: idem-post-api-v1-payout-runs' \
-H 'Content-Type: application/json' \
-d '{"name":"Mai Trinkgeld","items":[{"operator_id":"17","amount":5125,"currency":"EUR"}]}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json","Idempotency-Key":"idem-post-api-v1-payout-runs"}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/payout-runs", headers=headers, data="{\"name\":\"Mai Trinkgeld\",\"items\":[{\"operator_id\":\"17\",\"amount\":5125,\"currency\":\"EUR\"}]}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/payout-runs", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json", "Idempotency-Key": "idem-post-api-v1-payout-runs" },
body: JSON.stringify({"name":"Mai Trinkgeld","items":[{"operator_id":"17","amount":5125,"currency":"EUR"}]})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"name":"Mai Trinkgeld","items":[{"operator_id":"17","amount":5125,"currency":"EUR"}]}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/payout-runs")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue("idem-post-api-v1-payout-runs", forHTTPHeaderField: "Idempotency-Key")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"name\":\"Mai Trinkgeld\",\"items\":[{\"operator_id\":\"17\",\"amount\":5125,\"currency\":\"EUR\"}]}")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/payout-runs", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Idempotency-Key", "idem-post-api-v1-payout-runs")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/payout-runs")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.header("Idempotency-Key", "idem-post-api-v1-payout-runs")
.body("{\"name\":\"Mai Trinkgeld\",\"items\":[{\"operator_id\":\"17\",\"amount\":5125,\"currency\":\"EUR\"}]}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/payout-runs
payout.read
Listet Auszahlungsläufe des Mandanten.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/payout-runs' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/payout-runs", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/payout-runs", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/payout-runs")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/payout-runs", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/payout-runs")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/payout-runs/1
payout.read
Liest Detailstatus und Positionen eines Laufs.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/payout-runs/1' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/payout-runs/1", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/payout-runs/1", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/payout-runs/1")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/payout-runs/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/payout-runs/1")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/payout-runs/1/dry-run
payout.write
Führt den technischen Probelauf ohne Geldbewegung aus.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/payout-runs/1/dry-run' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Idempotency-Key: idem-post-api-v1-payout-runs-1-dry-run'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Idempotency-Key":"idem-post-api-v1-payout-runs-1-dry-run"}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/payout-runs/1/dry-run", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/payout-runs/1/dry-run", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_...", "Idempotency-Key": "idem-post-api-v1-payout-runs-1-dry-run" }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/payout-runs/1/dry-run")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("idem-post-api-v1-payout-runs-1-dry-run", forHTTPHeaderField: "Idempotency-Key")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/payout-runs/1/dry-run", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Idempotency-Key", "idem-post-api-v1-payout-runs-1-dry-run")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/payout-runs/1/dry-run")
.bearer_auth("tgm_test_...")
.header("Idempotency-Key", "idem-post-api-v1-payout-runs-1-dry-run")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/payout-runs/1/approve
payout.write
Setzt den Lauf auf freigegeben.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/payout-runs/1/approve' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Idempotency-Key: idem-post-api-v1-payout-runs-1-approve'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Idempotency-Key":"idem-post-api-v1-payout-runs-1-approve"}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/payout-runs/1/approve", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/payout-runs/1/approve", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_...", "Idempotency-Key": "idem-post-api-v1-payout-runs-1-approve" }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/payout-runs/1/approve")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("idem-post-api-v1-payout-runs-1-approve", forHTTPHeaderField: "Idempotency-Key")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/payout-runs/1/approve", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Idempotency-Key", "idem-post-api-v1-payout-runs-1-approve")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/payout-runs/1/approve")
.bearer_auth("tgm_test_...")
.header("Idempotency-Key", "idem-post-api-v1-payout-runs-1-approve")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/payout-runs/1/execute
payout.execute
Führt einen freigegebenen Lauf aus, sofern Abo und Feature Flags passen.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/payout-runs/1/execute' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Idempotency-Key: idem-post-api-v1-payout-runs-1-execute'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Idempotency-Key":"idem-post-api-v1-payout-runs-1-execute"}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/payout-runs/1/execute", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/payout-runs/1/execute", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_...", "Idempotency-Key": "idem-post-api-v1-payout-runs-1-execute" }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/payout-runs/1/execute")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("idem-post-api-v1-payout-runs-1-execute", forHTTPHeaderField: "Idempotency-Key")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/payout-runs/1/execute", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Idempotency-Key", "idem-post-api-v1-payout-runs-1-execute")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/payout-runs/1/execute")
.bearer_auth("tgm_test_...")
.header("Idempotency-Key", "idem-post-api-v1-payout-runs-1-execute")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/payout-runs/1/cancel
payout.write
Setzt einen Lauf auf canceled, bevor eine Live-Ausführung erfolgt.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/payout-runs/1/cancel' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Idempotency-Key: idem-post-api-v1-payout-runs-1-cancel'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Idempotency-Key":"idem-post-api-v1-payout-runs-1-cancel"}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/payout-runs/1/cancel", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/payout-runs/1/cancel", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_...", "Idempotency-Key": "idem-post-api-v1-payout-runs-1-cancel" }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/payout-runs/1/cancel")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("idem-post-api-v1-payout-runs-1-cancel", forHTTPHeaderField: "Idempotency-Key")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/payout-runs/1/cancel", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Idempotency-Key", "idem-post-api-v1-payout-runs-1-cancel")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/payout-runs/1/cancel")
.bearer_auth("tgm_test_...")
.header("Idempotency-Key", "idem-post-api-v1-payout-runs-1-cancel")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/payout-items/1/retry
payout.execute
Erstellt für eine fehlgeschlagene Auszahlungsposition idempotent einen neuen Provider-Versuch und schreibt das Journal.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/payout-items/1/retry' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Idempotency-Key: idem-post-api-v1-payout-items-1-retry'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Idempotency-Key":"idem-post-api-v1-payout-items-1-retry"}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/payout-items/1/retry", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/payout-items/1/retry", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_...", "Idempotency-Key": "idem-post-api-v1-payout-items-1-retry" }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/payout-items/1/retry")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("idem-post-api-v1-payout-items-1-retry", forHTTPHeaderField: "Idempotency-Key")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/payout-items/1/retry", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Idempotency-Key", "idem-post-api-v1-payout-items-1-retry")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/payout-items/1/retry")
.bearer_auth("tgm_test_...")
.header("Idempotency-Key", "idem-post-api-v1-payout-items-1-retry")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/reports/payout-runs/1.csv
report.read
Lädt den CSV-Report für einen Auszahlungslauf des API-Key-Mandanten.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/reports/payout-runs/1.csv' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/reports/payout-runs/1.csv", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/reports/payout-runs/1.csv", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/reports/payout-runs/1.csv")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/reports/payout-runs/1.csv", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/reports/payout-runs/1.csv")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/reports/payout-runs/1.pdf
report.read
Lädt den PDF-Report für einen Auszahlungslauf des API-Key-Mandanten.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/reports/payout-runs/1.pdf' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/reports/payout-runs/1.pdf", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/reports/payout-runs/1.pdf", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/reports/payout-runs/1.pdf")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/reports/payout-runs/1.pdf", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/reports/payout-runs/1.pdf")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/reports/payout-runs/1.json
report.read
Lädt den maschinenlesbaren JSON-Report für einen Auszahlungslauf des API-Key-Mandanten.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/reports/payout-runs/1.json' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/reports/payout-runs/1.json", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/reports/payout-runs/1.json", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/reports/payout-runs/1.json")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/reports/payout-runs/1.json", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/reports/payout-runs/1.json")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/journal
payout.read
Listet Journalbewegungen und Provider-Referenzen.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/journal' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/journal", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/journal", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/journal")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/journal", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/journal")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/superadmin/tenants
megaadmin
Listet alle Mandanten. Authentifizierung über X-MegaAdmin-Token oder Bearer MegaAdmin Token.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/superadmin/tenants' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/superadmin/tenants", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/tenants", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/tenants")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/superadmin/tenants", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/superadmin/tenants")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/superadmin/tenants
megaadmin
Legt einen Mandanten an.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/superadmin/tenants' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"key":"api-tenant","name":"API Tenant","report_email":"api@example.test","status":"active"}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/superadmin/tenants", headers=headers, data="{\"key\":\"api-tenant\",\"name\":\"API Tenant\",\"report_email\":\"api@example.test\",\"status\":\"active\"}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/tenants", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"key":"api-tenant","name":"API Tenant","report_email":"api@example.test","status":"active"})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"key":"api-tenant","name":"API Tenant","report_email":"api@example.test","status":"active"}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/tenants")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"key\":\"api-tenant\",\"name\":\"API Tenant\",\"report_email\":\"api@example.test\",\"status\":\"active\"}")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/superadmin/tenants", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/superadmin/tenants")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"key\":\"api-tenant\",\"name\":\"API Tenant\",\"report_email\":\"api@example.test\",\"status\":\"active\"}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/superadmin/tenants/1
megaadmin
Liest einen Mandanten.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/superadmin/tenants/1' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/superadmin/tenants/1", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/tenants/1", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/tenants/1")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/superadmin/tenants/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/superadmin/tenants/1")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
PATCH
/api/v1/superadmin/tenants/1
megaadmin
Aktualisiert Mandantenstammdaten.
curl
curl -X PATCH 'https://trinkgeldmeister.com/api/v1/superadmin/tenants/1' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"name":"API Tenant Updated","plan_key":"team"}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("PATCH", "https://trinkgeldmeister.com/api/v1/superadmin/tenants/1", headers=headers, data="{\"name\":\"API Tenant Updated\",\"plan_key\":\"team\"}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/tenants/1", {
method: "PATCH",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"name":"API Tenant Updated","plan_key":"team"})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"name":"API Tenant Updated","plan_key":"team"}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/tenants/1")!)
request.httpMethod = "PATCH"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"name\":\"API Tenant Updated\",\"plan_key\":\"team\"}")
req, _ := http.NewRequest("PATCH", "https://trinkgeldmeister.com/api/v1/superadmin/tenants/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::PATCH, "https://trinkgeldmeister.com/api/v1/superadmin/tenants/1")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"name\":\"API Tenant Updated\",\"plan_key\":\"team\"}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
DELETE
/api/v1/superadmin/tenants/1
megaadmin
Setzt einen Mandanten auf deleted.
curl
curl -X DELETE 'https://trinkgeldmeister.com/api/v1/superadmin/tenants/1' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("DELETE", "https://trinkgeldmeister.com/api/v1/superadmin/tenants/1", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/tenants/1", {
method: "DELETE",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/tenants/1")!)
request.httpMethod = "DELETE"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("DELETE", "https://trinkgeldmeister.com/api/v1/superadmin/tenants/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::DELETE, "https://trinkgeldmeister.com/api/v1/superadmin/tenants/1")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/superadmin/users
megaadmin
Listet User/Rollen für `tenant_id` oder den ersten Mandanten.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/superadmin/users' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/superadmin/users", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/users", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/users")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/superadmin/users", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/superadmin/users")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/superadmin/users
megaadmin
Legt einen Tenant-User mit Rolle an.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/superadmin/users' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"tenant_id":1,"name":"API Owner","email":"owner@example.test","phone":"+491701234567","role":"owner","phone_verified":true}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/superadmin/users", headers=headers, data="{\"tenant_id\":1,\"name\":\"API Owner\",\"email\":\"owner@example.test\",\"phone\":\"+491701234567\",\"role\":\"owner\",\"phone_verified\":true}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/users", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"tenant_id":1,"name":"API Owner","email":"owner@example.test","phone":"+491701234567","role":"owner","phone_verified":true})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"tenant_id":1,"name":"API Owner","email":"owner@example.test","phone":"+491701234567","role":"owner","phone_verified":true}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/users")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"tenant_id\":1,\"name\":\"API Owner\",\"email\":\"owner@example.test\",\"phone\":\"+491701234567\",\"role\":\"owner\",\"phone_verified\":true}")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/superadmin/users", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/superadmin/users")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"tenant_id\":1,\"name\":\"API Owner\",\"email\":\"owner@example.test\",\"phone\":\"+491701234567\",\"role\":\"owner\",\"phone_verified\":true}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
PATCH
/api/v1/superadmin/users/1
megaadmin
Aktualisiert Rolle, Status oder Kontaktdaten eines Tenant-Users.
curl
curl -X PATCH 'https://trinkgeldmeister.com/api/v1/superadmin/users/1' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"role":"finance","status":"active"}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("PATCH", "https://trinkgeldmeister.com/api/v1/superadmin/users/1", headers=headers, data="{\"role\":\"finance\",\"status\":\"active\"}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/users/1", {
method: "PATCH",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"role":"finance","status":"active"})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"role":"finance","status":"active"}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/users/1")!)
request.httpMethod = "PATCH"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"role\":\"finance\",\"status\":\"active\"}")
req, _ := http.NewRequest("PATCH", "https://trinkgeldmeister.com/api/v1/superadmin/users/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::PATCH, "https://trinkgeldmeister.com/api/v1/superadmin/users/1")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"role\":\"finance\",\"status\":\"active\"}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
DELETE
/api/v1/superadmin/users/1
megaadmin
Setzt einen Tenant-User auf deleted.
curl
curl -X DELETE 'https://trinkgeldmeister.com/api/v1/superadmin/users/1' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("DELETE", "https://trinkgeldmeister.com/api/v1/superadmin/users/1", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/users/1", {
method: "DELETE",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/users/1")!)
request.httpMethod = "DELETE"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("DELETE", "https://trinkgeldmeister.com/api/v1/superadmin/users/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::DELETE, "https://trinkgeldmeister.com/api/v1/superadmin/users/1")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/superadmin/employees
megaadmin
Listet Mitarbeiter für `tenant_id` oder den ersten Mandanten.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/superadmin/employees' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/superadmin/employees", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/employees", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/employees")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/superadmin/employees", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/superadmin/employees")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/superadmin/employees
megaadmin
Legt einen Mitarbeiter inklusive Operator-ID und maskierter IBAN an.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/superadmin/employees' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"tenant_id":1,"operator_id":"901","name":"API Employee","iban":"DE89370400440532013000","account_holder":"API Employee"}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/superadmin/employees", headers=headers, data="{\"tenant_id\":1,\"operator_id\":\"901\",\"name\":\"API Employee\",\"iban\":\"DE89370400440532013000\",\"account_holder\":\"API Employee\"}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/employees", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"tenant_id":1,"operator_id":"901","name":"API Employee","iban":"DE89370400440532013000","account_holder":"API Employee"})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"tenant_id":1,"operator_id":"901","name":"API Employee","iban":"DE89370400440532013000","account_holder":"API Employee"}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/employees")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"tenant_id\":1,\"operator_id\":\"901\",\"name\":\"API Employee\",\"iban\":\"DE89370400440532013000\",\"account_holder\":\"API Employee\"}")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/superadmin/employees", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/superadmin/employees")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"tenant_id\":1,\"operator_id\":\"901\",\"name\":\"API Employee\",\"iban\":\"DE89370400440532013000\",\"account_holder\":\"API Employee\"}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
PATCH
/api/v1/superadmin/employees/1
megaadmin
Aktualisiert Mitarbeiterstamm, Handy und Kontodaten.
curl
curl -X PATCH 'https://trinkgeldmeister.com/api/v1/superadmin/employees/1' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"location":"API Bar","phone":"0170 7654321"}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("PATCH", "https://trinkgeldmeister.com/api/v1/superadmin/employees/1", headers=headers, data="{\"location\":\"API Bar\",\"phone\":\"0170 7654321\"}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/employees/1", {
method: "PATCH",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"location":"API Bar","phone":"0170 7654321"})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"location":"API Bar","phone":"0170 7654321"}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/employees/1")!)
request.httpMethod = "PATCH"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"location\":\"API Bar\",\"phone\":\"0170 7654321\"}")
req, _ := http.NewRequest("PATCH", "https://trinkgeldmeister.com/api/v1/superadmin/employees/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::PATCH, "https://trinkgeldmeister.com/api/v1/superadmin/employees/1")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"location\":\"API Bar\",\"phone\":\"0170 7654321\"}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
DELETE
/api/v1/superadmin/employees/1
megaadmin
Setzt einen Mitarbeiter auf deleted.
curl
curl -X DELETE 'https://trinkgeldmeister.com/api/v1/superadmin/employees/1' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("DELETE", "https://trinkgeldmeister.com/api/v1/superadmin/employees/1", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/employees/1", {
method: "DELETE",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/employees/1")!)
request.httpMethod = "DELETE"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("DELETE", "https://trinkgeldmeister.com/api/v1/superadmin/employees/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::DELETE, "https://trinkgeldmeister.com/api/v1/superadmin/employees/1")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/superadmin/providers
megaadmin
Listet Provider-Verbindungen für `tenant_id` oder den ersten Mandanten.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/superadmin/providers' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/superadmin/providers", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/providers", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/providers")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/superadmin/providers", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/superadmin/providers")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/superadmin/providers
megaadmin
Legt eine Provider-Verbindung mit Secret-Referenzen an und kann die Konfiguration testen.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/superadmin/providers' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"tenant_id":1,"provider":"stripe_global_payouts","display_name":"API Stripe","mode":"sandbox","credential_ref":"env:STRIPE_SECRET_KEY","webhook_secret_ref":"env:STRIPE_GLOBAL_PAYOUTS_WEBHOOK_SECRET","financial_account_ref":"fa_test","active":true,"test":true}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/superadmin/providers", headers=headers, data="{\"tenant_id\":1,\"provider\":\"stripe_global_payouts\",\"display_name\":\"API Stripe\",\"mode\":\"sandbox\",\"credential_ref\":\"env:STRIPE_SECRET_KEY\",\"webhook_secret_ref\":\"env:STRIPE_GLOBAL_PAYOUTS_WEBHOOK_SECRET\",\"financial_account_ref\":\"fa_test\",\"active\":true,\"test\":true}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/providers", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"tenant_id":1,"provider":"stripe_global_payouts","display_name":"API Stripe","mode":"sandbox","credential_ref":"env:STRIPE_SECRET_KEY","webhook_secret_ref":"env:STRIPE_GLOBAL_PAYOUTS_WEBHOOK_SECRET","financial_account_ref":"fa_test","active":true,"test":true})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"tenant_id":1,"provider":"stripe_global_payouts","display_name":"API Stripe","mode":"sandbox","credential_ref":"env:STRIPE_SECRET_KEY","webhook_secret_ref":"env:STRIPE_GLOBAL_PAYOUTS_WEBHOOK_SECRET","financial_account_ref":"fa_test","active":true,"test":true}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/providers")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"tenant_id\":1,\"provider\":\"stripe_global_payouts\",\"display_name\":\"API Stripe\",\"mode\":\"sandbox\",\"credential_ref\":\"env:STRIPE_SECRET_KEY\",\"webhook_secret_ref\":\"env:STRIPE_GLOBAL_PAYOUTS_WEBHOOK_SECRET\",\"financial_account_ref\":\"fa_test\",\"active\":true,\"test\":true}")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/superadmin/providers", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/superadmin/providers")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"tenant_id\":1,\"provider\":\"stripe_global_payouts\",\"display_name\":\"API Stripe\",\"mode\":\"sandbox\",\"credential_ref\":\"env:STRIPE_SECRET_KEY\",\"webhook_secret_ref\":\"env:STRIPE_GLOBAL_PAYOUTS_WEBHOOK_SECRET\",\"financial_account_ref\":\"fa_test\",\"active\":true,\"test\":true}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
PATCH
/api/v1/superadmin/providers/1
megaadmin
Aktualisiert Provider-Status, Modus oder Secret-Referenzen.
curl
curl -X PATCH 'https://trinkgeldmeister.com/api/v1/superadmin/providers/1' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"display_name":"Stripe Sandbox Updated","status":"active"}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("PATCH", "https://trinkgeldmeister.com/api/v1/superadmin/providers/1", headers=headers, data="{\"display_name\":\"Stripe Sandbox Updated\",\"status\":\"active\"}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/providers/1", {
method: "PATCH",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"display_name":"Stripe Sandbox Updated","status":"active"})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"display_name":"Stripe Sandbox Updated","status":"active"}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/providers/1")!)
request.httpMethod = "PATCH"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"display_name\":\"Stripe Sandbox Updated\",\"status\":\"active\"}")
req, _ := http.NewRequest("PATCH", "https://trinkgeldmeister.com/api/v1/superadmin/providers/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::PATCH, "https://trinkgeldmeister.com/api/v1/superadmin/providers/1")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"display_name\":\"Stripe Sandbox Updated\",\"status\":\"active\"}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
DELETE
/api/v1/superadmin/providers/1
megaadmin
Deaktiviert eine Provider-Verbindung.
curl
curl -X DELETE 'https://trinkgeldmeister.com/api/v1/superadmin/providers/1' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("DELETE", "https://trinkgeldmeister.com/api/v1/superadmin/providers/1", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/providers/1", {
method: "DELETE",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/providers/1")!)
request.httpMethod = "DELETE"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("DELETE", "https://trinkgeldmeister.com/api/v1/superadmin/providers/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::DELETE, "https://trinkgeldmeister.com/api/v1/superadmin/providers/1")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/superadmin/payout-runs
megaadmin
Listet Auszahlungsläufe für `tenant_id` oder den ersten Mandanten.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/superadmin/payout-runs' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/superadmin/payout-runs", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/payout-runs", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/payout-runs")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/superadmin/payout-runs", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/superadmin/payout-runs")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/superadmin/payout-runs
megaadmin
Erzeugt einen Auszahlungslauf für einen Mandanten aus JSON-Positionen.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/superadmin/payout-runs' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"tenant_id":1,"name":"SuperAdmin Run","items":[{"operator_id":"17","amount":5125,"currency":"EUR"}]}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/superadmin/payout-runs", headers=headers, data="{\"tenant_id\":1,\"name\":\"SuperAdmin Run\",\"items\":[{\"operator_id\":\"17\",\"amount\":5125,\"currency\":\"EUR\"}]}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/payout-runs", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"tenant_id":1,"name":"SuperAdmin Run","items":[{"operator_id":"17","amount":5125,"currency":"EUR"}]})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"tenant_id":1,"name":"SuperAdmin Run","items":[{"operator_id":"17","amount":5125,"currency":"EUR"}]}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/payout-runs")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"tenant_id\":1,\"name\":\"SuperAdmin Run\",\"items\":[{\"operator_id\":\"17\",\"amount\":5125,\"currency\":\"EUR\"}]}")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/superadmin/payout-runs", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/superadmin/payout-runs")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"tenant_id\":1,\"name\":\"SuperAdmin Run\",\"items\":[{\"operator_id\":\"17\",\"amount\":5125,\"currency\":\"EUR\"}]}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/superadmin/payout-runs/1
megaadmin
Liest einen Auszahlungslauf inklusive Positionen.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/superadmin/payout-runs/1' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/superadmin/payout-runs/1", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/payout-runs/1", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/payout-runs/1")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/superadmin/payout-runs/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/superadmin/payout-runs/1")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
PATCH
/api/v1/superadmin/payout-runs/1
megaadmin
Ändert den Status eines Auszahlungslaufs.
curl
curl -X PATCH 'https://trinkgeldmeister.com/api/v1/superadmin/payout-runs/1' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"status":"approved"}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("PATCH", "https://trinkgeldmeister.com/api/v1/superadmin/payout-runs/1", headers=headers, data="{\"status\":\"approved\"}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/payout-runs/1", {
method: "PATCH",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"status":"approved"})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"status":"approved"}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/payout-runs/1")!)
request.httpMethod = "PATCH"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"status\":\"approved\"}")
req, _ := http.NewRequest("PATCH", "https://trinkgeldmeister.com/api/v1/superadmin/payout-runs/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::PATCH, "https://trinkgeldmeister.com/api/v1/superadmin/payout-runs/1")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"status\":\"approved\"}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
DELETE
/api/v1/superadmin/payout-runs/1
megaadmin
Setzt einen Auszahlungslauf auf canceled.
curl
curl -X DELETE 'https://trinkgeldmeister.com/api/v1/superadmin/payout-runs/1' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("DELETE", "https://trinkgeldmeister.com/api/v1/superadmin/payout-runs/1", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/payout-runs/1", {
method: "DELETE",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/payout-runs/1")!)
request.httpMethod = "DELETE"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("DELETE", "https://trinkgeldmeister.com/api/v1/superadmin/payout-runs/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::DELETE, "https://trinkgeldmeister.com/api/v1/superadmin/payout-runs/1")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/superadmin/settings
megaadmin
Liest Landing- und SMS-Gateway-Konfiguration ohne Klartext-Secrets.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/superadmin/settings' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/superadmin/settings", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/settings", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/settings")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/superadmin/settings", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/superadmin/settings")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
PATCH
/api/v1/superadmin/settings
megaadmin
Aktualisiert Landing-Texte oder SMS-Gateway-Secret-Referenzen.
curl
curl -X PATCH 'https://trinkgeldmeister.com/api/v1/superadmin/settings' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"landing":{"hero_title":"API Landing"},"sms_gateway":{"sender":"TGM","dry_run":true}}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("PATCH", "https://trinkgeldmeister.com/api/v1/superadmin/settings", headers=headers, data="{\"landing\":{\"hero_title\":\"API Landing\"},\"sms_gateway\":{\"sender\":\"TGM\",\"dry_run\":true}}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/settings", {
method: "PATCH",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"landing":{"hero_title":"API Landing"},"sms_gateway":{"sender":"TGM","dry_run":true}})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"landing":{"hero_title":"API Landing"},"sms_gateway":{"sender":"TGM","dry_run":true}}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/settings")!)
request.httpMethod = "PATCH"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"landing\":{\"hero_title\":\"API Landing\"},\"sms_gateway\":{\"sender\":\"TGM\",\"dry_run\":true}}")
req, _ := http.NewRequest("PATCH", "https://trinkgeldmeister.com/api/v1/superadmin/settings", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::PATCH, "https://trinkgeldmeister.com/api/v1/superadmin/settings")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"landing\":{\"hero_title\":\"API Landing\"},\"sms_gateway\":{\"sender\":\"TGM\",\"dry_run\":true}}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/superadmin/pricing-plans
megaadmin
Listet Preisplaene.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/superadmin/pricing-plans
megaadmin
Legt einen Preisplan an oder aktualisiert ihn per Key.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"key":"api-plan","name":"API Plan","monthly_price":4900,"employees_monthly":25,"payout_runs_monthly":6,"payout_amount_monthly":500000,"status":"active"}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans", headers=headers, data="{\"key\":\"api-plan\",\"name\":\"API Plan\",\"monthly_price\":4900,\"employees_monthly\":25,\"payout_runs_monthly\":6,\"payout_amount_monthly\":500000,\"status\":\"active\"}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"key":"api-plan","name":"API Plan","monthly_price":4900,"employees_monthly":25,"payout_runs_monthly":6,"payout_amount_monthly":500000,"status":"active"})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"key":"api-plan","name":"API Plan","monthly_price":4900,"employees_monthly":25,"payout_runs_monthly":6,"payout_amount_monthly":500000,"status":"active"}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"key\":\"api-plan\",\"name\":\"API Plan\",\"monthly_price\":4900,\"employees_monthly\":25,\"payout_runs_monthly\":6,\"payout_amount_monthly\":500000,\"status\":\"active\"}")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"key\":\"api-plan\",\"name\":\"API Plan\",\"monthly_price\":4900,\"employees_monthly\":25,\"payout_runs_monthly\":6,\"payout_amount_monthly\":500000,\"status\":\"active\"}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/superadmin/pricing-plans/1
megaadmin
Liest einen Preisplan.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans/1' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans/1", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans/1", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans/1")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans/1")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
PATCH
/api/v1/superadmin/pricing-plans/1
megaadmin
Aktualisiert einen Preisplan inklusive Null-Werten für Preis oder Limits.
curl
curl -X PATCH 'https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans/1' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"name":"Starter Updated","monthly_price":0}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("PATCH", "https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans/1", headers=headers, data="{\"name\":\"Starter Updated\",\"monthly_price\":0}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans/1", {
method: "PATCH",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"name":"Starter Updated","monthly_price":0})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"name":"Starter Updated","monthly_price":0}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans/1")!)
request.httpMethod = "PATCH"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"name\":\"Starter Updated\",\"monthly_price\":0}")
req, _ := http.NewRequest("PATCH", "https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::PATCH, "https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans/1")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"name\":\"Starter Updated\",\"monthly_price\":0}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
DELETE
/api/v1/superadmin/pricing-plans/1
megaadmin
Setzt einen Preisplan auf inactive.
curl
curl -X DELETE 'https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans/1' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("DELETE", "https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans/1", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans/1", {
method: "DELETE",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans/1")!)
request.httpMethod = "DELETE"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("DELETE", "https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::DELETE, "https://trinkgeldmeister.com/api/v1/superadmin/pricing-plans/1")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/superadmin/webhooks
megaadmin
Listet Webhook-Endpunkte je Mandant.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/superadmin/webhooks' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/superadmin/webhooks", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/webhooks", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/webhooks")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/superadmin/webhooks", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/superadmin/webhooks")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
GET
/api/v1/superadmin/api-keys
megaadmin
Listet API Keys ohne Hash oder Klartext-Key für `tenant_id`.
curl
curl -X GET 'https://trinkgeldmeister.com/api/v1/superadmin/api-keys' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("GET", "https://trinkgeldmeister.com/api/v1/superadmin/api-keys", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/api-keys", {
method: "GET",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/api-keys")!)
request.httpMethod = "GET"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("GET", "https://trinkgeldmeister.com/api/v1/superadmin/api-keys", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::GET, "https://trinkgeldmeister.com/api/v1/superadmin/api-keys")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/superadmin/api-keys
megaadmin
Legt einen API Key an und gibt nur Metadaten zurück, nicht den Klartext-Key.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/superadmin/api-keys' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"tenant_id":1,"name":"API Managed Key","scopes":"tenant.read employee.read"}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/superadmin/api-keys", headers=headers, data="{\"tenant_id\":1,\"name\":\"API Managed Key\",\"scopes\":\"tenant.read employee.read\"}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/api-keys", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"tenant_id":1,"name":"API Managed Key","scopes":"tenant.read employee.read"})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"tenant_id":1,"name":"API Managed Key","scopes":"tenant.read employee.read"}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/api-keys")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"tenant_id\":1,\"name\":\"API Managed Key\",\"scopes\":\"tenant.read employee.read\"}")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/superadmin/api-keys", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/superadmin/api-keys")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"tenant_id\":1,\"name\":\"API Managed Key\",\"scopes\":\"tenant.read employee.read\"}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
PATCH
/api/v1/superadmin/api-keys/1
megaadmin
Aktualisiert Name, Scopes oder Status eines API Keys ohne Hash oder Klartext-Key offenzulegen.
curl
curl -X PATCH 'https://trinkgeldmeister.com/api/v1/superadmin/api-keys/1' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"name":"API Managed Key Updated","scopes":"tenant.read employee.read payout.read","status":"active"}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("PATCH", "https://trinkgeldmeister.com/api/v1/superadmin/api-keys/1", headers=headers, data="{\"name\":\"API Managed Key Updated\",\"scopes\":\"tenant.read employee.read payout.read\",\"status\":\"active\"}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/api-keys/1", {
method: "PATCH",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"name":"API Managed Key Updated","scopes":"tenant.read employee.read payout.read","status":"active"})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"name":"API Managed Key Updated","scopes":"tenant.read employee.read payout.read","status":"active"}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/api-keys/1")!)
request.httpMethod = "PATCH"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"name\":\"API Managed Key Updated\",\"scopes\":\"tenant.read employee.read payout.read\",\"status\":\"active\"}")
req, _ := http.NewRequest("PATCH", "https://trinkgeldmeister.com/api/v1/superadmin/api-keys/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::PATCH, "https://trinkgeldmeister.com/api/v1/superadmin/api-keys/1")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"name\":\"API Managed Key Updated\",\"scopes\":\"tenant.read employee.read payout.read\",\"status\":\"active\"}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
DELETE
/api/v1/superadmin/api-keys/1
megaadmin
Sperrt einen API Key.
curl
curl -X DELETE 'https://trinkgeldmeister.com/api/v1/superadmin/api-keys/1' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("DELETE", "https://trinkgeldmeister.com/api/v1/superadmin/api-keys/1", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/api-keys/1", {
method: "DELETE",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/api-keys/1")!)
request.httpMethod = "DELETE"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("DELETE", "https://trinkgeldmeister.com/api/v1/superadmin/api-keys/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::DELETE, "https://trinkgeldmeister.com/api/v1/superadmin/api-keys/1")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
POST
/api/v1/superadmin/webhooks
megaadmin
Legt einen Kunden-Webhook für einen Mandanten an.
curl
curl -X POST 'https://trinkgeldmeister.com/api/v1/superadmin/webhooks' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"tenant_id":1,"name":"API Webhook","url":"https://example.test/tgm","events":"payout.*"}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("POST", "https://trinkgeldmeister.com/api/v1/superadmin/webhooks", headers=headers, data="{\"tenant_id\":1,\"name\":\"API Webhook\",\"url\":\"https://example.test/tgm\",\"events\":\"payout.*\"}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/webhooks", {
method: "POST",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"tenant_id":1,"name":"API Webhook","url":"https://example.test/tgm","events":"payout.*"})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"tenant_id":1,"name":"API Webhook","url":"https://example.test/tgm","events":"payout.*"}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/webhooks")!)
request.httpMethod = "POST"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"tenant_id\":1,\"name\":\"API Webhook\",\"url\":\"https://example.test/tgm\",\"events\":\"payout.*\"}")
req, _ := http.NewRequest("POST", "https://trinkgeldmeister.com/api/v1/superadmin/webhooks", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::POST, "https://trinkgeldmeister.com/api/v1/superadmin/webhooks")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"tenant_id\":1,\"name\":\"API Webhook\",\"url\":\"https://example.test/tgm\",\"events\":\"payout.*\"}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
PATCH
/api/v1/superadmin/webhooks/1
megaadmin
Aktualisiert Name, URL, Events, Secret-Referenz oder Status eines Kunden-Webhooks.
curl
curl -X PATCH 'https://trinkgeldmeister.com/api/v1/superadmin/webhooks/1' \
-H 'Authorization: Bearer tgm_test_...' \
-H 'Content-Type: application/json' \
-d '{"name":"API Webhook Updated","url":"https://example.test/tgm-updated","events":"payout.*,billing.*","secret_ref":"env:TGM_WEBHOOK_SECRET","status":"active"}'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_...","Content-Type":"application/json"}
response = requests.request("PATCH", "https://trinkgeldmeister.com/api/v1/superadmin/webhooks/1", headers=headers, data="{\"name\":\"API Webhook Updated\",\"url\":\"https://example.test/tgm-updated\",\"events\":\"payout.*,billing.*\",\"secret_ref\":\"env:TGM_WEBHOOK_SECRET\",\"status\":\"active\"}")
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/webhooks/1", {
method: "PATCH",
headers: { Authorization: "Bearer tgm_test_...", "Content-Type": "application/json" },
body: JSON.stringify({"name":"API Webhook Updated","url":"https://example.test/tgm-updated","events":"payout.*,billing.*","secret_ref":"env:TGM_WEBHOOK_SECRET","status":"active"})
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{"name":"API Webhook Updated","url":"https://example.test/tgm-updated","events":"payout.*,billing.*","secret_ref":"env:TGM_WEBHOOK_SECRET","status":"active"}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/webhooks/1")!)
request.httpMethod = "PATCH"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data(json.utf8)
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("{\"name\":\"API Webhook Updated\",\"url\":\"https://example.test/tgm-updated\",\"events\":\"payout.*,billing.*\",\"secret_ref\":\"env:TGM_WEBHOOK_SECRET\",\"status\":\"active\"}")
req, _ := http.NewRequest("PATCH", "https://trinkgeldmeister.com/api/v1/superadmin/webhooks/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::PATCH, "https://trinkgeldmeister.com/api/v1/superadmin/webhooks/1")
.bearer_auth("tgm_test_...")
.header("Content-Type", "application/json")
.body("{\"name\":\"API Webhook Updated\",\"url\":\"https://example.test/tgm-updated\",\"events\":\"payout.*,billing.*\",\"secret_ref\":\"env:TGM_WEBHOOK_SECRET\",\"status\":\"active\"}")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}
DELETE
/api/v1/superadmin/webhooks/1
megaadmin
Deaktiviert einen Kunden-Webhook.
curl
curl -X DELETE 'https://trinkgeldmeister.com/api/v1/superadmin/webhooks/1' \
-H 'Authorization: Bearer tgm_test_...'
Python
import requests
headers = {"Authorization":"Bearer tgm_test_..."}
response = requests.request("DELETE", "https://trinkgeldmeister.com/api/v1/superadmin/webhooks/1", headers=headers)
print(response.status_code, response.text)
JavaScript/Node
const response = await fetch("https://trinkgeldmeister.com/api/v1/superadmin/webhooks/1", {
method: "DELETE",
headers: { Authorization: "Bearer tgm_test_..." }
});
console.log(response.status, await response.text());
Swift
import Foundation
let json = #"{}"#
var request = URLRequest(url: URL(string: "https://trinkgeldmeister.com/api/v1/superadmin/webhooks/1")!)
request.httpMethod = "DELETE"
request.setValue("Bearer tgm_test_...", forHTTPHeaderField: "Authorization")
let (data, response) = try await URLSession.shared.data(for: request)
print((response as! HTTPURLResponse).statusCode, String(data: data, encoding: .utf8)!)
Go
package main
import ("bytes"; "fmt"; "io"; "log"; "net/http")
func main() {
body := []byte("")
req, _ := http.NewRequest("DELETE", "https://trinkgeldmeister.com/api/v1/superadmin/webhooks/1", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer tgm_test_...")
req.Body = nil
res, err := http.DefaultClient.Do(req); if err != nil { log.Fatal(err) }
defer res.Body.Close()
raw, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(raw))
}
Rust
use reqwest::{Client, Method};
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let response = Client::new()
.request(Method::DELETE, "https://trinkgeldmeister.com/api/v1/superadmin/webhooks/1")
.bearer_auth("tgm_test_...")
.send().await?;
println!("{} {}", response.status(), response.text().await?);
Ok(())
}