PlanDocket

Zahlungen

Business+

Zahlungen verfolgen und verbuchen.

Erforderliche Bereiche: payments
Zugriffsstufe: GET payments:read POST / PUT / PATCH / DELETE payments:write Mehr zu Zugriffsstufen
Feature-Flag: invoices

Endpunkte

GET /api/v1/payments

Alle Zahlungen auflisten

GET /api/v1/payments/{id}

Einzelne Zahlung abrufen

POST /api/v1/payments

Zahlung erfassen. Zahlungen sind nur für gestellte, offene Rechnungen möglich (sent, partially_paid, overdue): Entwürfe, stornierte oder erstattete Rechnungen und Gutschriften werden mit 422 abgelehnt, eine vollständig bezahlte Rechnung mit 400. Eine wiederholte Stripe/PayPal-transaction_id liefert die bestehende Zahlung mit 200, oder 409, wenn sie zu einer anderen Rechnung gehört

PUT/PATCH /api/v1/payments/{id}

Zahlung aktualisieren (Status, Notizen, Zahlungsdatum). Unveränderte Werte werden ignoriert; jede Änderung wird im Rechnungs-Audit-Log protokolliert. Der Abschluss setzt eine bezahlbare Rechnung und ausreichenden offenen Betrag voraus. Bei gesperrten Rechnungen behalten abgeschlossene, erstattete und per Stripe/PayPal bestätigte Zahlungen Status und Zahlungsdatum (400); Notizen bleiben änderbar. Erstattungen können nicht per API geändert werden

DELETE /api/v1/payments/{id}

Zahlung löschen

Abfrageparameter

Parameter Beschreibung
invoice_number Nach Rechnungsnummer filtern
status Nach Zahlungsstatus filtern
date_from Zahlungen ab diesem Datum filtern (ISO 8601)
date_to Zahlungen bis zu diesem Datum filtern (ISO 8601)
sort Sortierfeld (amount, status, payment_date, created_at)
order Sortierrichtung (ASC oder DESC, Standard: DESC)
include Verknüpfte Daten einschließen (invoice)

Request-Schema

Parameter Typ Erforderlich Beschreibung
invoice_number string Ja Rechnungsnummer zur Zuordnung (erforderlich)
amount float Ja Zahlungsbetrag (erforderlich, muss positiv sein)
currency string Nein Währungscode (Standard: Rechnungswährung oder EUR)
status string Nein Zahlungsstatus (Standard: completed)
payment_date string Nein Zahlungsdatum (ISO 8601 Format, Standard: jetzt)
notes string Nein Interne Notizen zur Zahlung
gateway_key string Nein Zahlungsgateway-Kennung
transaction_id string Nein Externe Transaktions-ID

Response-Schema

Feld Typ
id integer
invoice_id integer
amount float
currency string
gateway_id integer|null
gateway_key string|null
gateway_name string|null
transaction_id string|null
gateway_fee float
net_amount float
status string
payment_date string|null
notes string|null
created_at string
updated_at string

Codebeispiele

curl -X GET "https://ihr-mandant.plandocket.com/api/v1/payments" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
<?php
$apiKey = 'YOUR_API_KEY';
$baseUrl = 'https://ihr-mandant.plandocket.com';

$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => $baseUrl . '/api/v1/payments',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . $apiKey,
    ],
]);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
print_r($data);
const apiKey = 'YOUR_API_KEY';
const baseUrl = 'https://ihr-mandant.plandocket.com';

const response = await fetch(`${baseUrl}/api/v1/payments`, {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
  },
});

const data = await response.json();
console.log(data);
import requests

api_key = 'YOUR_API_KEY'
base_url = 'https://ihr-mandant.plandocket.com'

headers = {
    'Authorization': f'Bearer {api_key}',
}

response = requests.get(f'{base_url}/api/v1/payments', headers=headers)
data = response.json()
print(data)

Beispiel-Antwort

200 OK
{
    "data": [
        {
            "id": 1,
            "invoice_id": 1,
            "amount": 100,
            "currency": "string",
            "gateway_id": 1,
            "gateway_key": "string",
            "gateway_name": "string",
            "transaction_id": "string",
            "gateway_fee": 100,
            "net_amount": 100,
            "status": "string",
            "payment_date": "2026-01-15T10:00:00+01:00",
            "notes": "string",
            "created_at": "2026-01-15T10:00:00+01:00",
            "updated_at": "2026-01-15T10:00:00+01:00"
        }
    ],
    "meta": {
        "current_page": 1,
        "per_page": 25,
        "total": 1,
        "total_pages": 1
    }
}
API Version v1.0