Skip to main content
POST
Create Payment

Authorizations

x-api-key
string
header
required

Dein Business OS API Key. Erstelle einen unter app.business-os.de → API Keys.

Query Parameters

api
enum<string>
default:partner

Banking-API: partner (regulierte Banken) oder openbanking (unregulierte wie AMEX, Revolut)

Available options:
partner,
openbanking

Body

application/json

Request-Body zum Initiieren einer Zahlung. Felder werden flach übergeben — provider_code, debtor_iban und die Banking-API werden automatisch aus der Account-ID aufgelöst. end_to_end_id wird immer server-seitig generiert (BOS-{timestamp}-{hex}) für das Payment-↔-Transaction-Matching. Ein vom Client übergebener Wert wird ignoriert.

account_id
string
required

ID des eigenen Bankkontos (Account.id). Daraus werden Provider, Debitor-IBAN und Banking-API automatisch aufgelöst.

Example:

"8273645091827364509"

amount
string
required

Betrag als String (z.B. "1.00" für 1,00 €).

Example:

"1.00"

currency_code
string
default:EUR

Währungscode (ISO 4217). Default EUR.

Example:

"EUR"

template_identifier
enum<string>
default:AUTO

Zahlungsart. Default AUTO: wählt automatisch SEPA_INSTANT, wenn die Bank Instant anbietet, sonst SEPA (bei Terminüberweisung via date immer SEPA); lehnt die Bank den automatisch gewählten Instant-Auftrag ab, wird einmalig als SEPA ausgeführt (Response-Feld template_fallback). Explizit gesetztes SEPA/SEPA_INSTANT wird unverändert verwendet.

Available options:
AUTO,
SEPA,
SEPA_INSTANT
Example:

"AUTO"

creditor_name
string

Name des Empfängers.

Example:

"Mustermann GmbH"

creditor_iban
string

IBAN des Empfängers.

Example:

"DE27100777770209299700"

description
string

Verwendungszweck.

Example:

"Rechnung G-RE-2026-03024"

reference
string

Lokales Label (optional) — z.B. die eigene Rechnungsnummer. Wird gespeichert und bei GET /v2/banking/payments/{id} sowie GET /v2/banking/payments wieder zurückgegeben, nicht an die Bank übermittelt (SEPA kennt kein solches Feld).

Example:

"RG-2026-03024"

date
string<date>

Ausführungsdatum (YYYY-MM-DD) für eine geplante Zahlung (Terminüberweisung). Nur wirksam, wenn das Payment-Template der Bank date unterstützt — die je Template verfügbaren Zusatzfelder liefert GET /v2/banking/payment-templates.

Example:

"2026-07-01"

creditor_country_code
string

ISO-3166-1-alpha-2 Country-Code des Empfängers. Wenn weggelassen, wird er automatisch aus den ersten 2 Zeichen der creditor_iban abgeleitet.

Example:

"DE"

creditor_address
string

Adresse des Empfängers (optional, bankabhängig).

Example:

"Musterstr. 1, 10115 Berlin"

creditor_agent
string

BIC der Empfängerbank (optional).

Example:

"MUSTBE22"

creditor_agent_name
string

Name der Empfängerbank (optional).

Example:

"Musterbank AG"

debtor_bic
string

BIC der eigenen Bank (optional, wird i.d.R. aus der debtor_iban aufgelöst).

Example:

"DEUTDEFFXXX"

mode
string

bankspezifischer Modus (optional, bankabhängig).

Example:

"embedded"

return_to
string<uri>
default:https://app.business-os.de/close

Redirect-URL nach Zahlungsbestätigung im Browser. Default https://app.business-os.de/close.

Example:

"https://app.business-os.de/close"

custom_fields
object

Benutzerdefinierte Felder (werden im Callback zurückgegeben).

Example:

Response

Zahlung initiiert — User muss die payment_url aufrufen

Antwort beim Initiieren einer Zahlung. Banking-Response (data) wird durchgereicht, plus der server-seitig generierte end_to_end_id als zusätzliches Top-Level-Field unter data.

data
object