Zum Inhalt

createLink

Einen Payment Link für einen einzelnen Empfänger erstellen.

Request

POST /api/v2/createLink

Headers

Header Erforderlich Beschreibung
token Ja Ihre API Key
Content-Type Ja application/json

Body-Parameter

Feld Typ Erforderlich Beschreibung
amount number Ja Zahlungsbetrag in EUR (muss > 0 sein)
recipient_note string Nein Notiz zur Identifikation (z.B. Rechnungsnummer)
callback_url string Nein URL oder Index für Browser-Redirect nach Zahlung. Siehe Callbacks
payment_endpoint string Nein Webhook-URL(s) für diesen Link. Akzeptiert URL, Index oder kommaseparierte Kombination. Siehe Webhooks
cancellable boolean Nein Ob der Kunde abbrechen kann. Standard: true
bank_transfer string Nein Banküberweisung als Zahlungsmethode aktivieren ("true" / "false")
is_encryption string Nein Verschlüsselte Webhook-Payloads aktivieren ("true" / "false")
encryption_key string Nein Benutzerdefinierter AES-256-CBC-Schlüssel für Webhook-Verschlüsselung
bank_statement_description string Nein Text auf dem Kontoauszug des Kunden
is_qr_link string Nein QR-Code-Bild-URL generieren ("true" / "false")

callback_url-Optionen

Das callback_url-Feld akzeptiert:

  • Eine vollständige URL: "https://ihreseite.de/zahlung/fertig" — Kunde wird hierhin weitergeleitet
  • Einen Index (String): "0", "1", etc. — verwendet die N-te URL aus Ihrer konfigurierten callback_urls-Liste
  • Weggelassen: Kunde sieht SecPaids Standard-Erfolgs-/Abbruch-Seite

Antwort

Erfolg (ResponseCode: 1)

{
  "data": {
    "is_cancellation": "No",
    "user_id": "b44c4429-4a7b-4e27-85af-c1c2f43f4ffe",
    "amount": 25,
    "recipient_note": "Rechnung #1234",
    "status": "Unused",
    "paymentEndpoint": "https://ihreseite.de/webhook",
    "callback_url": "https://ihreseite.de/zahlung/fertig",
    "servicefee": "1.0",
    "recipients": null,
    "is_split_link": "false",
    "split_type": "normal",
    "bank_transfer": "true",
    "is_qr_link": "false",
    "payment_config": "",
    "bank_statement_description": "",
    "created_at": "2026-05-20 11:19:48",
    "id": 99290,
    "pay_link": "https://app.secpaid.com/payment?link_id=OTkyOTA=",
    "qr_img": "https://quickchart.io/chart?chl=https://app.secpaid.com/payment?link_id=OTkyOTA=&chs=300x300&cht=qr",
    "transaction_type": "Basic"
  },
  "ResponseCode": 1,
  "ResponseMsg": "Link has been created successfully",
  "Result": "True",
  "ServerTime": "CEST"
}

Antwortfelder

Feld Typ Beschreibung
id integer Interne Link-ID
pay_link string Zahlungs-URL zum Senden an den Kunden
qr_img string QR-Code-Bild-URL
amount number Zahlungsbetrag in EUR
status string Immer "Unused" bei Erstellung
transaction_type string "Basic" für reguläre Links
is_cancellation string Ob der Kunde stornieren kann
recipient_note string Ihre Notiz
callback_url string Konfigurierte Redirect-URL
paymentEndpoint string Konfigurierte Webhook-URL

Fehler (ResponseCode: 0)

{
  "ResponseCode": 0,
  "ResponseMsg": "Please enter amount",
  "Result": "False",
  "ServerTime": "CEST"
}

Häufige Fehler:

ResponseMsg Ursache
Please enter token Fehlender token-Header
No user found with the provided API key. Ungültiger API-Key
Please enter amount Fehlendes amount-Feld
Amount should not be zero or negative number amount ≤ 0

Beispiele

curl -X POST https://app.secpaid.com/api/v2/createLink \
  -H "Content-Type: application/json" \
  -H "token: IHR_API_KEY" \
  -d '{
    "amount": 49.99,
    "recipient_note": "Rechnung #1234",
    "callback_url": "https://ihreseite.de/zahlung/fertig",
    "cancellable": true
  }'
const response = await fetch("https://app.secpaid.com/api/v2/createLink", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "token": "IHR_API_KEY"
  },
  body: JSON.stringify({
    amount: 49.99,
    recipient_note: "Rechnung #1234",
    callback_url: "https://ihreseite.de/zahlung/fertig",
    cancellable: true
  })
});

const { data } = await response.json();
// data.pay_link → an Kunden senden
$response = Http::withHeaders([
    'token' => 'IHR_API_KEY',
])->post('https://app.secpaid.com/api/v2/createLink', [
    'amount' => 49.99,
    'recipient_note' => 'Rechnung #1234',
    'callback_url' => 'https://ihreseite.de/zahlung/fertig',
    'cancellable' => true,
]);

$payLink = $response->json()['data']['pay_link'];

Hinweise

  • Die pay_link-URL senden Sie an Ihren Kunden
  • link_id in der URL ist base64_encode(linktopay_id)
  • cancellable ist standardmäßig true (Kunde kann abbrechen)
  • servicefee zeigt den Plattform-Gebühren-Prozentsatz für diesen Link
  • is_encryption: "true" aktiviert AES-256-CBC-verschlüsselte Webhook-Payloads
  • bank_statement_description erscheint auf dem Kontoauszug des Kunden
  • Das qr_img-Feld enthält eine sofort verwendbare QR-Code-Bild-URL