curl -X POST https://persolz.com/api/v1/emails/send \
-H "Authorization: Bearer pz_live_DEIN_API_SCHLUESSEL" \
-H "Idempotency-Key: shop-bestellung-4711" \
-H "Content-Type: application/json" \
-d '{
"to": "anna@beispiel.de",
"subject": "Danke für Deine Bestellung #{{bestellnummer}}, {{vorname|Du}}!",
"html": "<p>Hallo {{vorname|Du}},</p><p>Deine Bestellung <strong>#{{bestellnummer}}</strong> über {{betrag}} ist eingegangen.</p><p>Lieferung voraussichtlich am {{lieferdatum}}.</p>",
"placeholders": {
"bestellnummer": "4711",
"betrag": "24,90 €",
"lieferdatum": "14.10.2026"
},
"from_name": "Kartenherz",
"reply_to": "hallo@kartenherz.com",
"track_opens": false
}'
<?php
$apiKey = 'pz_live_DEIN_API_SCHLUESSEL'; // besser: getenv('PERSOLZ_API_KEY')
$ch = curl_init('https://persolz.com/api/v1/emails/send');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
'Idempotency-Key: shop-bestellung-4711',
],
CURLOPT_POSTFIELDS => json_encode([
'to' => 'anna@beispiel.de',
'subject' => 'Danke für Deine Bestellung #{{bestellnummer}}, {{vorname|Du}}!',
'html' => '<p>Hallo {{vorname|Du}},</p><p>Deine Bestellung <strong>#{{bestellnummer}}</strong> über {{betrag}} ist eingegangen.</p><p>Lieferung voraussichtlich am {{lieferdatum}}.</p>',
'placeholders' => [
'bestellnummer' => '4711',
'betrag' => '24,90 €',
'lieferdatum' => '14.10.2026',
],
'from_name' => 'Kartenherz',
'reply_to' => 'hallo@kartenherz.com',
'track_opens' => false,
]),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
]);
$body = (string) curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);
$json = json_decode($body, true);
if ($status >= 400) {
exit('Fehler ' . $status . ': ' . ($json['error']['message'] ?? $body));
}
print_r($json['data']);
const response = await fetch('https://persolz.com/api/v1/emails/send', {
method: 'POST',
headers: {
'Authorization': 'Bearer pz_live_DEIN_API_SCHLUESSEL',
'Content-Type': 'application/json',
'Idempotency-Key': 'shop-bestellung-4711'
},
body: JSON.stringify({
to: 'anna@beispiel.de',
subject: 'Danke für Deine Bestellung #{{bestellnummer}}, {{vorname|Du}}!',
html: '<p>Hallo {{vorname|Du}},</p><p>Deine Bestellung <strong>#{{bestellnummer}}</strong> über {{betrag}} ist eingegangen.</p><p>Lieferung voraussichtlich am {{lieferdatum}}.</p>',
placeholders: {
bestellnummer: '4711',
betrag: '24,90 €',
lieferdatum: '14.10.2026'
},
from_name: 'Kartenherz',
reply_to: 'hallo@kartenherz.com',
track_opens: false
})
});
const json = await response.json();
if (!response.ok) {
throw new Error(`Fehler ${response.status}: ${json.error.message}`);
}
console.log(json.data);
import requests
response = requests.post(
"https://persolz.com/api/v1/emails/send",
headers={
"Authorization": "Bearer pz_live_DEIN_API_SCHLUESSEL",
"Idempotency-Key": "shop-bestellung-4711",
},
json={
"to": "anna@beispiel.de",
"subject": "Danke für Deine Bestellung #{{bestellnummer}}, {{vorname|Du}}!",
"html": "<p>Hallo {{vorname|Du}},</p><p>Deine Bestellung <strong>#{{bestellnummer}}</strong> über {{betrag}} ist eingegangen.</p><p>Lieferung voraussichtlich am {{lieferdatum}}.</p>",
"placeholders": {
"bestellnummer": "4711",
"betrag": "24,90 €",
"lieferdatum": "14.10.2026",
},
"from_name": "Kartenherz",
"reply_to": "hallo@kartenherz.com",
"track_opens": False,
},
timeout=30,
)
result = response.json()
if not response.ok:
raise SystemExit(f"Fehler {response.status_code}: {result['error']['message']}")
print(result["data"])