Benutzer-Werkzeuge

Webseiten-Werkzeuge


Übersetzungen dieser Seite:
girocheckout:xbezahldienste:start

xBezahldienste-API (GiroCheckout)

Version: 1.0.0

Beschreibung:

  • Minimale xBezahldienste-kompatible API auf Basis der GiroCheckout Paypage.
  • Nur Client-Credentials-Flow; Tokens sind opaque.
  • Übliche Vorgehensweise:
    • Zuerst ein Token abrufen (token-Endpunkt)
    • Dann unter Angabe des Tokens im Bearer-Header, Zahlungstransaktion erstellen (Endpunkt paymenttransaction/{originatorId}/{endPointId})
    • Wichtig ist die Angabe der requestId und der redirectUrl (das ist die URL, zu der der Kunde nach Abschluss der Zahlung zurückgeleitet wird).
    • Sie erhalten eine PaymentTransaction mit transactionUrl (dienst zur Statusabfrage der Zahlung) und transactionRedirectUrl (hierhin müssen Sie den Kunden weiterleiten, damit dieser die Zahlung abschließen kann).
    • Nach Abschluss der Zahlung wird der Kunde zur vorher angegebenen redirectUrl weitergeleitet.
    • Dort sollten Sie dann den Status der Zahlung abfragen (Endpunkt paymenttransaction/{originatorId}/{endPointId}/{transactionId}) und das finale Ergebnis anzeigen oder verarbeiten.

OpenAPI-Dokumentation: OpenAPI-Version: 3.0.3

Sie finden diese Dokumentation im OpenAPI-Format hier: girocheckout_xbezahldienste_openapi.yaml

Server

URL Beschreibung
https://payment.girosolution.de/api/xbezahldienste/{…endpunkt} Produktiver Host, nutzen Sie den angegebenen Präfix und ergänzen dann die u.a. URL des Endpunktes

Tags

Name Beschreibung
Bezahldienst Endpunkte für Zahlungstransaktionen
Betrieb Status-Endpunkte
OAuth2 Token-Endpunkt

Pfade

/xbezahldienste/auth/token

POST

Tags: OAuth2

Summary: Token-Endpunkt (Client-Credentials)

Beschreibung:

  • Nutzen Sie diesen Endpunkt, um ein Zugriffstoken für die anderen Aufrufe zu erhalten. Es wird nur der Client-Credentials-Flow von OAuth2 unterstützt.
  • Gibt ein opakes Zugriffstoken (kein JWT) unter Verwendung von client_credentials zurück.
  • Unterstützt application/x-www-form-urlencoded oder JSON-Body.

Request Body: erforderlich

Content-Type Schema
application/x-www-form-urlencoded #/components/schemas/TokenRequest
application/json #/components/schemas/TokenRequest

Responses:

Status Beschreibung Content-Type Schema
200 Token-Antwort application/json #/components/schemas/TokenResponse
400 Ungültige Anfrage application/json #/components/schemas/TokenError
401 Ungültiger Client application/json #/components/schemas/TokenError

/xbezahldienste/paymenttransaction/{originatorId}/{endPointId}

POST

Tags: Bezahldienst

Summary: PaymentTransaction erstellen (Paypage-Initialisierung)

Security: OAuth2 (Scope: post)

Parameter (Path):

Name Beschreibung Pflicht Schema
originatorId Zuordnung zur GiroCheckout Merchant ID (Verkäufer-ID). Die Verkäufer-ID ist im GiroCockpit-Konto des Kunden zu finden. ja string (minLength: 1, maxLength: 36, pattern: [\w\d-]+$)
endPointId Zuordnung zur GiroCheckout Projekt-ID. Die Projekt-ID ist im GiroCockpit-Konto des Kunden im entsprechenden Zahlungsprojekt zu finden. ja string (minLength: 1, maxLength: 36, pattern: [\w\d-]+$)

Request Body: erforderlich

Content-Type Schema
application/json #/components/schemas/PaymentRequest

Responses:

Status Beschreibung Content-Type Schema
200 In Ordnung application/json #/components/schemas/PaymentTransaction
400 (siehe Response) application/problem+json #/components/responses/400Error
404 (siehe Response) application/problem+json #/components/responses/404Error
504 (siehe Response) application/problem+json #/components/responses/504Error

/xbezahldienste/paymenttransaction/{originatorId}/{endPointId}/{transactionId}

GET

Tags: Bezahldienst

Summary: PaymentTransaction-Status abrufen

Security: OAuth2 (Scope: read)

Parameter (Path):

Name Beschreibung Pflicht Schema
originatorId Zuordnung zur GiroCheckout Merchant ID (Verkäufer-ID). Die Verkäufer-ID ist im GiroCockpit-Konto des Kunden zu finden. ja string (minLength: 1, maxLength: 36, pattern: [\w\d-]+$)
endPointId Zuordnung zur GiroCheckout Projekt-ID. Die Projekt-ID ist im GiroCockpit-Konto des Kunden im entsprechenden Zahlungsprojekt zu finden. ja string (minLength: 1, maxLength: 36, pattern: [\w\d-]+$)
transactionId (siehe Parameter: TransactionId) ja string (minLength: 1, maxLength: 44, pattern: [\w\d-]+$)

Responses:

Status Beschreibung Content-Type Schema
200 In Ordnung application/json #/components/schemas/PaymentTransaction
404 (siehe Response) application/problem+json #/components/responses/404Error
504 (siehe Response) application/problem+json #/components/responses/504Error

/xbezahldienste/status

GET

Tags: Betrieb

Summary: Dienststatus

Security: OAuth2 (Scope: read)

Responses:

Status Beschreibung Content-Type Schema
200 (siehe Response) application/problem+json #/components/responses/200Healthy
403 (siehe Response) application/problem+json #/components/responses/403Error
504 (siehe Response) application/problem+json #/components/responses/504Error

/xbezahldienste/status/{originatorId}/{endPointId}

GET

Tags: Betrieb

Summary: Status für spezifische Konfiguration

Security: OAuth2 (Scope: read)

Parameter (Path):

Name Beschreibung Pflicht Schema
originatorId Zuordnung zur GiroCheckout Merchant ID (Verkäufer-ID). Die Verkäufer-ID ist im GiroCockpit-Konto des Kunden zu finden. ja string (minLength: 1, maxLength: 36, pattern: [\w\d-]+$)
endPointId Zuordnung zur GiroCheckout Projekt-ID. Die Projekt-ID ist im GiroCockpit-Konto des Kunden im entsprechenden Zahlungsprojekt zu finden. ja string (minLength: 1, maxLength: 36, pattern: [\w\d-]+$)

Responses:

Status Beschreibung Content-Type Schema
200 (siehe Response) application/problem+json #/components/responses/200Healthy
403 (siehe Response) application/problem+json #/components/responses/403Error
504 (siehe Response) application/problem+json #/components/responses/504Error

Komponenten

Security Schemes

OAuth2

  • type: oauth2
  • flows:
    • clientCredentials:
      • tokenUrl: /xbezahldienste/auth/token
      • scopes:
        • post: PaymentRequest senden
        • read: PaymentTransaction-Status lesen
        • admin: Admin-Operationen

Parameter

OriginatorId

  • name: originatorId
  • in: path
  • description: Zuordnung zur GiroCheckout Merchant ID (Verkäufer-ID). Die Verkäufer-ID ist im GiroCockpit-Konto des Kunden zu finden.
  • required: true
  • schema: string (minLength: 1, maxLength: 36, pattern: ^[\w\d-]+$)

EndPointId

  • name: endPointId
  • in: path
  • description: Zuordnung zur GiroCheckout Projekt-ID. Die Projekt-ID ist im GiroCockpit-Konto des Kunden im entsprechenden Zahlungsprojekt zu finden.
  • required: true
  • schema: string (minLength: 1, maxLength: 36, pattern: ^[\w\d-]+$)

TransactionId

  • name: transactionId
  • in: path
  • required: true
  • schema: string (minLength: 1, maxLength: 44, pattern: ^[\w\d-]+$)

Schemas

PaymentTransaction

  • type: object
  • required: paymentInformation
  • additionalProperties: false
  • properties:
    • paymentInformation: #/components/schemas/PaymentInformation
    • paymentRequest: #/components/schemas/PaymentRequest

PaymentInformation

  • type: object
  • required: transactionUrl, transactionRedirectUrl, transactionId, paymentRequest, status
  • additionalProperties: false
  • properties:
    • transactionUrl: string (format: uri, minLength: 1, maxLength: 2082)
    • transactionRedirectUrl: string (format: uri, minLength: 1, maxLength: 5000)
    • transactionId: string (minLength: 1, maxLength: 44, pattern: ^[\w\d-]+$)
    • transactionReference: string (minLength: 1, maxLength: 36, pattern: ^[\w\d-]+$)
    • transactionTimestamp: string (format: date-time)
    • paymentMethod: string (enum: GIROPAY, PAYDIRECT, CREDITCARD, PAYPAL, OTHER)
    • paymentMethodDetail: string (minLength: 1, maxLength: 36, pattern: ^[\w\d-]+$)
    • status: string (enum: INITIAL, PAYED, FAILED, CANCELED)
    • statusDetail: string (minLength: 0, maxLength: 99, pattern: ^[\w\d-]+$)

PaymentRequest

  • type: object
  • required: requestId, requestTimestamp, currency, grosAmount, redirectUrl, items
  • additionalProperties: false
  • properties:
    • requestId: string (minLength: 1, maxLength: 36, pattern: ^[\w\d-]+$)
    • requestTimestamp: string (format: date-time)
    • currency: string (minLength: 3, maxLength: 3, pattern: ^[\w]+$)
    • grosAmount: number (format: double, minimum: 0, maximum: 999999, exclusiveMinimum: true)
    • purpose: string (minLength: 0, maxLength: 27, pattern: ^[\w\d\s-]+$)
    • description: string (minLength: 0, maxLength: 250, pattern: ^[\w\d\s-,.]+$)
    • redirectUrl: string (format: uri, minLength: 1, maxLength: 2082)
    • items: array (minItems: 1, maxItems: 99, items: #/components/schemas/PaymentItem)
    • requestor: #/components/schemas/Requestor

PaymentItem

  • type: object
  • required: id, reference, taxRate, quantity, totalNetAmount, totalTaxAmount, singleNetAmount, singleTaxAmount
  • additionalProperties: false
  • properties:
    • id: string (minLength: 1, maxLength: 36, pattern: ^[\w\d-]+$)
    • reference: string (minLength: 1, maxLength: 36, pattern: ^[\w\d-]+$)
    • description: string (minLength: 1, maxLength: 250, pattern: ^[\w\d\s-,.]+$)
    • taxRate: number (format: double, minimum: 0, maximum: 100)
    • quantity: integer (format: int64, minimum: 1, maximum: 999999)
    • totalNetAmount: number (format: double, minimum: 0, exclusiveMinimum: true, maximum: 999999)
    • totalTaxAmount: number (format: double, minimum: 0, maximum: 999999)
    • singleNetAmount: number (format: double, minimum: 0, exclusiveMinimum: true, maximum: 999999)
    • singleTaxAmount: number (format: double, minimum: 0, maximum: 999999)
    • bookingData: object (additionalProperties: string, minLength: 0, maxLength: 250, pattern: ^[\w\d\s-,.]+$)

Requestor

  • type: object
  • required: name, firstName, isOrganization, address
  • additionalProperties: false
  • properties:
    • name: string (minLength: 1, maxLength: 250, pattern: ^[\w\d\s-,.]+$)
    • firstName: string (minLength: 1, maxLength: 250, pattern: ^[\w\d\s-,.]+$)
    • gender: string (enum: M, F, D)
    • isOrganization: boolean
    • organizationName: string (minLength: 1, maxLength: 250, pattern: ^[\w\d\s-,.]+$)
    • address: #/components/schemas/Address

Address

  • type: object
  • additionalProperties: false
  • properties:
    • street: string (minLength: 1, maxLength: 250, pattern: ^[\w\d\s-,.]+$)
    • houseNumber: string (minLength: 0, maxLength: 20, pattern: ^[\w\d-]+$)
    • addressLine: array (minItems: 0, maxItems: 9, items: string (minLength: 1, maxLength: 250, pattern: ^[\w\d\s-,.:]+$))
    • postalCode: string (minLength: 5, maxLength: 5, pattern: ^[\d]+$)
    • city: string (minLength: 1, maxLength: 250, pattern: ^[\w\d\s-,]+$)
    • country: string (minLength: 2, maxLength: 2, pattern: ^[\w]+$)

SystemResponse

  • type: object
  • additionalProperties: false
  • properties:
    • type: string (format: uri, minLength: 1, maxLength: 2082)
    • status: integer (format: int32, minimum: 100, maximum: 511)
    • title: string (minLength: 1, maxLength: 250, pattern: ^[\w\d\s.-]+$)
    • detail: string (minLength: 1, maxLength: 2000, pattern: ^[\w\d\s-,.]+$)
    • functionalCode: string (enum: NO_VALID_ORIGINATOR_OR_DESTINATION, PAYMENT_EXISTS, CALCULATION_ERROR, BOOKING_DATA_MISSING, UNSPECIFIED, FORBIDDEN)

TokenRequest

  • type: object
  • required: grant_type, client_id, client_secret
  • additionalProperties: false
  • properties:
    • grant_type: string
      • description: Wir unterstützen nur den Client-Credentials-Flow.
      • enum: client_credentials (Only client_credentials is supported)
    • client_id: string (minLength: 1, maxLength: 128)
      • description: Diese Information erhalten Sie vom GiroCheckout-Support, wenn Sie dort die Aktivierung der xBezahldienste-Schnittstelle beantragen.
    • client_secret: string (minLength: 1, maxLength: 256)
      • description: Diese Information erhalten Sie vom GiroCheckout-Support, wenn Sie dort die Aktivierung der xBezahldienste-Schnittstelle beantragen.
    • scope: string

TokenResponse

  • type: object
  • required: access_token, token_type, expires_in
  • additionalProperties: false
  • properties:
    • access_token: string
    • token_type: string (example: Bearer)
    • expires_in: integer
    • scope: string

TokenError

  • type: object
  • required: error
  • additionalProperties: false
  • properties:
    • error: string
    • error_description: string

Responses

200Healthy

  • description: In Ordnung
  • content: application/problem+json
  • schema: #/components/schemas/SystemResponse
  • example:

400Error

  • description: Ungültige Anfrage
  • content: application/problem+json
  • schema: #/components/schemas/SystemResponse
  • example:

403Error

404Error

  • description: Nicht gefunden
  • content: application/problem+json
  • schema: #/components/schemas/SystemResponse
  • example:

504Error

  • description: Dienst nicht verfügbar
  • content: application/problem+json
  • schema: #/components/schemas/SystemResponse
  • example:
girocheckout/xbezahldienste/start.txt · Zuletzt geändert: 2026/01/13 15:56

Seiten-Werkzeuge