XML-Schnittstelle für die Billpay

Transcrição

XML-Schnittstelle für die Billpay
XML-Schnittstelle für die
Billpay-Zahlungsarten
Technische Dokumentation
(Version 1.9.1)
1
Inhaltsverzeichnis
1
Änderungshistorie ........................................................................................................................... 3
2
Was ist Billpay? ................................................................................................................................ 4
3
Zielgruppe ........................................................................................................................................ 4
4
Downloads ....................................................................................................................................... 4
5
Allgemeine Geschäftsbedingungen und Datenschutzbestimmungen ............................................ 5
6
Prozessdiagramm ............................................................................................................................ 6
7
XML-Schnittstelle............................................................................................................................. 7
7.1
Webservice-URL ...................................................................................................................... 8
7.2
Das Billpay-Backoffice ............................................................................................................. 8
7.3
Übersicht über die XML-Service-Requests .............................................................................. 9
7.4
Generelle Parameter für jeden XML-Service-Request .......................................................... 10
7.5
Generelle Parameter für jede XML-Service-Response .......................................................... 10
7.6
Frontend Requests ................................................................................................................ 11
7.6.1
Modul Konfiguration ..................................................................................................... 11
7.6.2
Vorautorisierung............................................................................................................ 12
7.6.3
Finalisierung der Bestellung (capture) .......................................................................... 18
7.7
Backend Requests ................................................................................................................. 20
7.7.1
Aktivierung / Layout der Endkundenrechnung ............................................................. 20
7.7.2
Vollstornierung .............................................................................................................. 22
7.7.3
Teilstornierung/Teilretour ............................................................................................. 22
8
Clientseitige API ............................................................................................................................. 24
9
XML-Beispiele ................................................................................................................................ 25
10 Kontakt für Rückfragen.................................................................................................................. 31
11 Anhang........................................................................................................................................... 32
11.1
Erlaubte Werte für das Feld „salutation“ .............................................................................. 32
2
1
Änderungshistorie
Version
Datum
Bemerkungen
1.8.6
13.Mai 2011
- Einige Beschreibungen konkretisiert
- Unterteilung der Requests in Frontend und Backend
- Falsche Beschreibung für Feld rebate in der Vorauth. Korrigiert
- Anforderungen an die Endkunden-Rechnung konkretisiert
1.9.0
31.Mai 2011
- Erforderliche Parameter für Internationalisierung eingefügt:
moduleConfig und partialCancel Requests erweitert
1.9.1
27.Juni 2011
- Erlaubte Werte für das Feld „saluation“ für Internationalisierung
angepaßt
- Internationalisierte Vorlage für die Zahlungsinformationen eingefügt
- Einbindung AGB und Datenschutz für Schweiz erweitert
- Falsche Beschreibung für den Parameter carttotalgross im
preauthorize-Request korrigiert
3
2 Was ist Billpay?
Mit Billpay können Online-Händler ihren Kunden die Zahlungsart „Kauf auf Rechnung“ mit einem
Zahlungsziel von 20 bzw. 30 Tagen (je nach Wunsch des Händlers) sowie die Zahlungsart „Kauf per
Lastschrift“ und auch den „Ratenkauf“ (siehe „Zusatzdokumentation für die Integration des BillpayRatenkauf (deutsch)“ für eine detailierte Beschreibung der Integration des Ratenkauf) anbieten. Die
Zahlart Kauf auf Rechnung kann dabei sowohl für Privatkunden (B2C) als auch für Geschäftskunden
(B2B) angeboten werden.
Laut der E-Commerce-Studie 2008 von ibi Research ist der Rechnungskauf die beliebteste Bezahlart
im deutschsprachigen Wirtschaftsraum. 65% der Konsumenten würden gern per Rechnung zahlen.
Ohne die Eingabe von sensiblen Konto- oder Kreditkartendaten können Kunden die Ware erst zu
Hause prüfen, bevor sie zahlen. Lastschrift ist die drittbeliebteste Bezahlart. Kunden kennen und
schätzen die Zahlung per Lastschrift aus dem stationären Handel. Durch das Angebot von zwei der
drei beliebtesten Bezahlarten sinkt die Kaufabbruchquote, die Warenkorbgröße steigt und Umsätze
und Gewinne wachsen maßgeblich. Ergänzt durch die immer populärer werdende Zahlungsart Ratenkauf, können Online-Händler Ihren Kunden mit Billpay eine unvergleichbare Bandbreite an Zahlungsmöglichkeiten anbieten.
Billpay übernimmt für den Online-Händler das gesamte Risiko- und Forderungsmanagement; der
Händler hat mehr Zeit für sein Kerngeschäft. Der Online-Händler erhält sein Geld auch dann, wenn
der Kunde die Rechnung nicht zahlt bzw. wenn die Lastschrift platzt – dank Billpays Zahlungsgarantie.
Billpay bietet den Online-Händlern eine schnelle und einfache Integration aller drei Zahlungsarten in
ihr Online-Shop-System. Neben einer Vielzahl einsatzbereiter Plugins für die gängigen Shopsysteme1
stellt Billpay eine clientseitige API bereit, die die Integration in Ihren Shop für den Fall vereinfacht,
dass Sie ein selbst entwickeltes Shopsystem verwenden oder Billpay für Ihr Shopsystem keine Pluginlösung anbietet.
3 Zielgruppe
Diese technische Dokumentation richtet sich an Softwareentwickler, die eine Anbindung an die XMLZahlungsschnittestelle von Billpay realisieren wollen.
4 Downloads
Das aktuellste Version dieser technischen Dokumentation und den für die Integration benötigte
Quellcode finden Sie unter der URL http://www.billpay.de/haendler/downloads.
Bitte überprüfen Sie bevor Sie mit der Integration beginnen, ob Ihnen die aktuellste Version dieses
Dokuments vorliegt.
1
Bitte beachten Sie bei der Installation die technische Dokumentation für das jeweilige Plugin
4
5 Allgemeine Geschäftsbedingungen und Datenschutzbestimmungen
Bevor eine Billpay-Zahlart im Bestellprozess des Shops durch den Kunden genutzt werden darf, muss
der Kunde die AGB und Datenschutzbestimmungen von Billpay bestätigen. Dies geschieht in der Regel direkt nach Auswahl der Zahlart und vor Bestätigung durch Drücken eines „Weiter“-Buttons.
Hierfür muss dem Kunden das folgende HTML-Fragment angezeigt werden:
Hiermit best&auml;tige ich die <strong><a href="[Link auf AGB]"
target="_blank">AGB</a></strong> und <strong><a href="[Link auf
Datenschutzbestimmungen]" target="_blank">Datenschutzbestimmungen
</a></strong> der Billpay GmbH.
Die Platzhalter für die Verweise müssen durch die entsprechenden Werte aus der folgenden Tabelle
ersetzt werden (maßgeblich für die Auswahl der Verweise ist das Land, in dem die Rechnungsadresse
des Kunden liegt):
Dokument
Webseite
Popup
AGB
(Deutschland)
Datenschutz
(Deutschland)
AGB
(Schweiz)
Datenschutz
(Schweiz)
https://www.billpay.de/kunden/agb
https://www.billpay.de/api/agb
https://www.billpay.de/kunden/agb#
datenschutz
https://www.billpay.de/kunden/agb-ch
https://www.billpay.de/api/agb#
datenschutz
https://www.billpay.de/api/agb-ch
https://www.billpay.de/kunden/agb-ch#
datenschutz
https://www.billpay.de/api/agb-ch#
datenschutz
Die AGB und Datenschutzbestimmungen sind in verschiedenen Sprachen abrufbar. Wenn Sie die
Schweizer Dokumente bspw. In französischer Sprache anzeigen wollen, nutzen Sie dafür die folgenden Links:
AGB (Webseite):
Datenschutz (Webseite):
https://www.billpay.de/kunden/agb-ch?lang=fr
https://www.billpay.de/kunden/agb-ch?lang=fr/#datenschutz
Falls die AGB nicht bestätigt worden sind (z.B. durch Aktivierung einer Checkbox), muss ein entsprechender Hinweis angezeigt und der Bestellvorgang darf nicht fortgesetzt werden.
5
6
Prozessdiagramm
Technischer Ablauf eines Einkaufs über Billpay.
Online-Händler
Billpay
Auswahl der Zahlart
Kunde wählt
Billpay-Zahlart
Vorauthorisierungsanfrage
(preauthorize)
Überprüfung der Anfrage
- Authentifizierungsparameter des Händlers
- Rechnungs-/Lieferadresse
- Warenkorb
- Historische Bestelldaten bei Bestandskunden
- Bankeinzugsdaten (nur für Lastschrift)
Bezahlung über Billpay
nicht möglich. Auswahl
alternativer Zahlart.
Fehler/Bestellung abgelehnt
- Fehlercode
- Fehlermeldung für Händler
- Fehlermeldung für Kunden
Fortsetzung des Bestellprozesses
Abschließende Übersicht
über die Bestellung
Ergebnis
der Anfrage
Bestellung akzeptiert
Erfassungsanfrage
(capture)
Überprüfung der Anfrage
- Transaktionsnummer
- Warenkorbwert (Prüfsumme)
Bezahlung über Billpay
nicht möglich. Auswahl
alternativer Zahlart.
Erfolgreicher
Abschluß der
Bestellung
Fehler
- Fehlercode
- Fehlermeldung für Händler
- Fehlermeldung für Kunden
Erfassung bestätigt
Zahlungsdetails (für Rechnung)
6
Ergebnis
der Anfrage
Ein Großteil der gängigen Shopsysteme realisiert einen Bestellprozess, der die beiden folgenden Aktionen in chronologischer Reihenfolge beinhaltet:
1) Auswahl der Zahlart mit anschließender Bestätigung der Zahlart
2) Abschließende Übersicht der Bestellung mit Bestätigung und anschließendem Anlegen der
Bestellung im Shop
In der Regel sollte in Verbindung mit jeder dieser beiden Aktionen eine Anfrage an die BillpaySchnittstelle gesendet werden (die Vorauthorisierungsanfrage für 1) und die Erfassungsanfrage für
2)). Erst mit dem erfolgreichen Absetzen der Erfassungsanfrage wird die Bestellung bei Billpay finalisiert. Das Senden der Vorauthorisierungsanfrage zu einem frühst möglichen Zeitpunkt ermöglicht
eine Minimierung der Kaufabbruchquote.
Sollte Ihr Shopsystem einen einstufigen Bestellabschluss realisieren, kann die Vorauthorisierungsanfrage auch im so genannten „Auto-Capture“-Modus ausgeführt. In diesem Fall wird die Bestellung
bereits mit erfolgreicher Vorauthorisierung bei Billpay finalisiert. Die Erfassungsanfrage darf dann
nicht mehr gesendet werden. Es muss jedoch beachtet werden, dass das erfolgreiche Absetzen der
Vorauthorisierungsanfrage im Auto-Capture Modus auch unmittelbar zum Anlegen der vollständigen
Bestellung im Shop führt.
Eine Bestellung, die mit der Erfassungsanfrage bei Billpay finalisiert wurde, muss unmittelbar vor der
Auslieferung aus dem Backend heraus aktiviert (siehe invoiceCreated-Request) werden. Das automatische Aktivieren mit Finalisierung der Bestellung ist nicht zulässig. Bestellungen, die nicht ordnungsgemäß aktiviert wurden, werden von Billpay nicht erstattet! Darüber hinaus muss jede Bestellung,
die nicht aktiviert wurde, bei Billpay storniert werden.
7 XML-Schnittstelle
Die Kommunikation zwischen Shop und der Billpay-Zahlungsschnittstelle basiert auf einem leichtgewichtigen XML-Protokoll. Der serverseitige Endpunkt der XML-Schnittstelle besteht aus einer Reihe
verschiedener XML-Services, die jeweils über einen XML-Service-Request angesprochen werden. Jeder XML-Service-Request besteht aus einem XML-Dokument, welches mittels HTTP POST-Request an
die XML-Schnittstelle gesendet werden muss. Als Antwort auf einen XML-Service-Request liefert die
XML-Schnittstelle eine XML-Service-Response. Jede XML-Service-Response besteht wiederum aus
einem XML-Dokument, welches immer mindestens einen Fehlercode und Fehlermeldungen für
Händler und Kunden beinhaltet. Nur wenn eine XML-Service-Response mit dem Fehlercode „0“ vorliegt, kann die Aktion als gültig betrachtet werden. Andernfalls liefert die XML-Schnittstelle detaillierte Fehlermeldungen zurück.
Die übergebenen XML-Daten an die XML-Schnittstelle müssen als UTF-8 codiert sein. Ebenso werden
die XML-Antworten als UTF-8 codiert zurückgegeben.
7
Das Schema der XML-Service-Requests beruht auf der extensiven Nutzung von XML-Attributen. Bitte
vergewissern Sie sich, dass reservierte Zeichen in den Attributewerten entsprechend des XMLStandards durch ihre Escape-Sequenzen wie folgt ersetzt werden:
Reserviertes
Zeichen
&
EscapeSequenz
&amp;
"
&quot;
'
&apos;
<
&lt;
>
&gt;
7.1 Webservice-URL
Jede URL für einen der XML-Services wird durch eine Basis-URL gefolgt von einem Bezeichner für den
jeweligen Service gebildet.
Basis-URLs
o Livesystem:
o Testsystem:
https://api.billpay.de/xml
https://test-api.billpay.de/xml/offline
Achtung: Die XML-Schnittstelle funktioniert nur über HTTPS und nicht über HTTP!
7.2 Das Billpay-Backoffice
Das Billpay-Backoffice ist ein Webinterface, mit dessen Hilfe einige der XML-Service-Requests durch
„manuelle“ Aktionen ersetzt werden können. So wird es durch das Billpay-Backoffice beispielsweise
ermöglicht, dass für Bestellungen Teilstornierungen durchgeführt werden können, auch wenn das
verwendete Shopsystem des Händlers die Funktionalität zur Integration des entsprechenden XMLService-Requests nicht anbietet oder gar die Teilstornierung nicht unterstützt.
Das Backoffice-Testsystem wird Sie darüber hinaus während des Integrationsprozesses unterstützen,
in dem Sie hier bei der Billpay-Schnittstelle eingegangene Bestellungen auf Richtigkeit überprüfen,
aktivieren und (teil-)stornieren können. Die Zugangsdaten für das Backoffice-Testsystem erhalten Sie
auf Anfrage bei Billpay (Kontaktdetails siehe Seite 31).
8
7.3 Übersicht über die XML-Service-Requests
Zeitpunkt
XML-Service
Semantik
des Aufrufs
Service-URL
Pflicht
Backoffice
Rückgabe
Modul Konfiguration
Abholen wichtiger
Systemparameter
für das aktuelle
Portal
Zu Beginn des
Bestellprozesses
[Basis-Url]/
moduleConfig
Ja
Nein
Flag für jede ZA
ob diese für
aktuelles Portal
verfügbar ist.
Oberes/unteres
Limit pro ZA
Vorautorisierung
Prüfung des Kunden auf Identität
bzw. Bonität
Bestellprozess.
Nach Auswahl
der Zahlart
[Basis-Url]/
preauthorize
Ja
Nein
Status der Prüfung und
ggf.korrigierte
Adresse
Erfassung
Bestätigung, dass
Bestellung abgeschlossen wird
Bestellprozess.
Beim Anlegen
der Bestellung
im Shop
[Basis-Url]/
capture
Ja
Nein
Rechnung:
BillpayKontodaten für
2
die Rechnung
Lastschrift: -
Aktualisierung
Aktualisierung der
Bestell-ID. Falls
Erfassung vor Anlegen der Bestellung
geschieht und die
Bestell-ID zu diesem ZP noch nicht
feststeht
Bestellprozess.
Nach Anlegen
der Bestellung
3
im Shop
[Basis-Url]/
updateOrder
Nein
Nein
-
Aktivierung
Rechnung:
Starten des Zahlungsziels (20 bzw.
30 Tage)
Lastschrift:
Initiierung des
Bankeinzugs
Bei Erstellung
der Rechnung.
Wird i.d.R. im
Adminbereich
des Shops
durch eine
spezielle Aktion ausgelöst
[Basis-Url]/
invoiceCreated
Ja
Ja
Rechnung:
BillpayKontodaten und
Zahlungsziel als
Zeitstempel
Lastschrift: -
2
Achtung! Die mit der Antwort auf die Erfassungsanfrage zurückgegebenen Kontodaten ändern sich für jede Transaktion
und dürfen somit nicht statisch im Shop hinterlegt werden!
3
Achtung! Zwischen der Erfassungsanfrage und der Aktualisierungsanfrage darf keine Nutzeraktion stattfinden!
9
Vollstornierung
Stornierung der
gesamten Bestellung
Wird i.d.R. im
Adminbereich
des Shops
durch eine
spezielle Aktion ausgelöst
[Basis-Url]/
cancel
Nein
Ja
-
Teilstornierung
Stornierung einzelner Posten der
Bestellung/
Stornierung von
Teilbeträgen
Wird i.d.R. im
Adminbereich
des Shops
durch eine
spezielle Aktion ausgelöst
[Basis-Url]/
partialcancel
Nein
Ja
-
7.4 Generelle Parameter für jeden XML-Service-Request
Mit jedem XML-Service-Request müssen folgende Parameter übergeben werden.
Parameter
mid
pid
bpsecure
Pflicht
+
+
+
Format
N…6
N…6
N…40
api_version
+
AN…10
Kommentar
ID des Händlers
ID des Zahlungsportals
Hinterlegter Sicherheitscode für das Zahlungsportal
(muss als MD5-Hash übergeben werden)
Version der Schnittstelle (aktuelle Version: 1.4.0).
7.5 Generelle Parameter für jede XML-Service-Response
Mit jeder XML-Service-Response werden die folgenden Parameter zurückgegeben.
Parameter
(error)
error_code
Pflicht
Format
Kommentar
+
N…6
merchant_message
-
AN…255
customer_message
-
AN…255
Fehlernummer. Standardwert ist „0“
(kein Fehler)
Detailierte Fehlernachricht für den Händler.
Fehlernachricht für den Kunden
Hinweis: Im Produktivmodus dürfen jeweils nur die Fehlermeldungen für den Kunden nach außen hin
sichtbar angezeigt werden. Die Händlerfehlermeldung enthält in einigen Fällen detailiertere Ausgaben, die nicht für den Kunden bestimmt ist.
Hinweis: Falls ein Fehlercode größer 0 zurückgeliefert wird, enthalten die Felder merchant_message
und customer_message in jedem Fall Fehlermeldungen.
10
7.6 Frontend Requests
Die folgenden Requests werden aus dem Frontend (genauer, aus dem Checkout) heraus gesendet.
7.6.1 Modul Konfiguration
Der “moduleConfig” Request wird eingesetzt, um vor dem Anzeigen der Zahlarten wichtige Konfigurationsparameter für das aktuelle Portal von der BIllpay-Schnittstelle abzufragen und ggf. die entsprechende Zahlart von vornherein auszublenden. Dies macht beispielsweise für den Fall Sinn, dass
der Warenkorbwert ein für den jeweiligen Shop von Billpay vergebendes oberes Limit überschreitet.
Es ist zu beachten, dass die Werte für die Limitsteuerung nicht durch den Händler beeinflusst werden
können.
7.6.1.1 REQUEST “moduleConfig”
Parameter
(Lokalisierung)
country
Pflicht
Format
Kommentar
-
Land des Endkunden (z.B. „DEU“)
currency
+
language
+
Vorgabe
ISO3166
alpha-3
Vorgabe
ISO 4217
Vorgabe
ISO 639-1
Währung des Warenkorbs (z.B. „EUR“)
Kennzeichen der Sprache des Endkunden
(z.B. „de“)
7.6.1.2 RESPONSE “moduleConfig”
Parameter
(Statisches Limit)
directdebitstatic
Pflicht
Format
Kommentar
+
N..10
hirepurchasestatic
+
N..10
invoicestatic
+
N..10
invoicebusinessstatic
+
N..10
Statisches Limit für “Kauf per Lastschrift”
(In kleinster Währungseinheit! Z.B. 100,00 Euro =
10000)
Statisches Limit für “Ratenkauf” (In kleinster Währungseinheit! Z.B. 100,00 Euro = 10000)
Statisches Limit für “Kauf auf Rechnung (B2C)” (In
kleinster Währungseinheit! Z.B. 100,00 Euro =
10000)
Statisches Limit für “Kauf auf Rechnung (B2B)” (In
kleinster Währungseinheit! Z.B. 100,00 Euro =
10000)
Hinweis: Wenn der Gesamtwert des aktuellen Warenkorbs das statische Limit überschreitet, dann
darf die entsprechende Zahlart nicht angezeigt warden.
Parameter
(Minimalwerte)
directdebit
Pflicht
Format
Kommentar
+
N..10
Minimaler Bestellwert für „Kauf per Lastschrift“
(In kleinster Währungseinheit! Z.B. 100,00 Euro = 10000)
11
hirepurchase
+
N..10
invoice
+
N..10
invoicebusiness
+
N..10
Minimaler Bestellwert für „Ratenkauf“ (In kleinster Währungseinheit! Z.B. 100,00 Euro = 10000)
Minimaler Bestellwert für „Kauf auf Rechnung (B2C)“ (In
kleinster Währungseinheit! Z.B. 100,00 Euro = 10000)
Minimaler Bestellwert für „Kauf auf Rechnung (B2B)“ (In
kleinster Währungseinheit! Z.B. 100,00 Euro = 10000)
Hinweis: Wenn der Gesamtwert des aktuellen Warenkorbs den Minimalwert für eine Zahlungsart
unterschreitet, dann darf die entsprechende Zahlart nicht angezeigt warden.
Parameter
(Berechtigungen)
active
Pflicht
Format
Kommentar
+
Sind Zahlungsarten für aktuelles Portal erlaubt?
directdebitallowed
+
hirepurchaseallowed
+
invoiceallowed
+
invoicebusinessallowed
+
Vorgabe
0: Nein
1: Ja
Vorgabe
0: Nein
1: Ja
Vorgabe
0: Nein
1: Ja
Vorgabe
0: Nein
1: Ja
Vorgabe
0: Nein
1: Ja
Ist Zahlungsart “Kauf per Lastschrift” erlaubt?
Ist Zahlungsart “Ratenkauf” erlaubt?
Ist Zahlungsart “Kauf auf Rechnung (B2C)”
erlaubt?
Ist Zahlungsart “Kauf auf Rechnung (B2B)”
erlaubt?
Hinweis: Falls entweder das “active”-Flag oder das Flag für eine Zahlart „0“ ist, darf die jeweilige
Zahlart nicht engeboten werden
7.6.2 Vorautorisierung
Bei der Vorauthorisierungsanfrage wird überprüft, ob der Kunde mit einer der Billpay-Zahlarten bestellen darf. Bei diesem Request wird die Identität und Bonität des Kunden überprüft.
7.6.2.1 REQUEST „preauthorize“
Parameter
tcaccepted
Pflicht
+
paymenttype
+
capturerequestnecessary
-
Format
Vorgabe
1: Ja
0: Nein
Vorgabe
1: Rechnungskauf
2: Lastschrift
3: Ratenkauf
Vorgabe
1:Ja (Default)
12
Kommentar
Hat der Kunde die Billpay-AGB akzeptiert?
Typ der Zahlart
Falls „0“ übergeben wird, wird die Bestellung ohne den capture-Request finali-
0:Nein
siert. Der capture-Request darf in diesem
Fall nicht gesendet werden. Falls „1“
übergeben wird, wird die Bestellung erst
mit erfolgreichem capture-Request finalisiert
Nicht-optionale Liste
1..n Artikel
(Bestelldaten Artikel)
articleid
Pflicht
Format
Kommentar
+
AN…20
articlequantity
articlename
articledescription
articleprice
+
+
+
N…7
AN…50
AN…50
N…7
articlepricegross
+
N…7
Eindeutige Artikel-ID/Item-ID für die Warenkorbposition (IDs dürfen sich in einer Anfrage nicht
wiederholen!)
Menge dieses Artikels im Warenkorb
Name des Artikels
Beschreibung des Artikels
Artikelpreis Netto
(In kleinster Währungseinheit! Z.B. 100,00 Euro =
10000)
Artikelpreis Brutto
(In kleinster Währungseinheit! Z.B. 100,00 Euro =
10000)
Parameter
(Bestelldaten Total)
shippingname
Pflicht
Format
Kommentar
+
AN…50
shippingprice
+
N…7
shippingpricegross
+
N…7
rebate
+
N..7
rebategross
+
N..7
Versandkosten-Name (z.B. „ExpressVersand“)
Nettowert aller warenkorbspez. Kosten (z.B. Lieferkosten, Zuschläge, ...).
(In kleinster Währungseinheit! Z.B.
100,00 Euro = 10000)
Bruttowert aller warenkorbspez.
Kosten (z.B. Lieferkosten, Zuschläge,
...).
(In kleinster Währungseinheit! Z.B.
100,00 Euro = 10000)
Positiver Nettowert aller Rabatte,
Coupons und sonstiger betragsmindernder Posten
(In kleinster Währungseinheit! Z.B.
100,00 Euro = 10000)
Positiver Bruttowert aller Rabatte,
Coupons und sonstiger betragsmin-
13
carttotalprice
+
N…7
carttotalpricegross
+
N…7
currency
+
reference
+ (falls capturerequestnecessary
= „0“)
Vorgabe
ISO 4217
AN…40
dernder Posten
(In kleinster Währungseinheit! Z.B.
100,00 Euro = 10000)
Nettowert der Bestellung
(In kleinster Währungseinheit! Z.B.
100,00 Euro = 10000)
Bruttowert der Bestellung
(In kleinster Währungseinheit! Z.B.
100,00 Euro = 10000)
Währung der Bestellung (z.B. „EUR“)
Bestellnummer beim Händler.
(Erlaubte Zeichen: 0-9, a-z, A-Z, .,,_,/)
Parameter
Pflicht
(Persondendaten)
customerid
-
Format
Kommentar
AN…20
customertype
+
salutation
+
title
firstname
lastname
street
streetno
+
+
+
-
Vorgabe
g: Guest
n: New
e: Existing
Vorgabe
(siehe Abschnitt 11.1)
AN…20
AN…50
AN…50
AN…50
AN…15
Kundennummer beim
Händler
(Erlaubte Zeichen: 0-9, az, A-Z, .,-,_,/)
- Guest
- New Customer
- Existing Customer
addressAddition
zip
city
country
+
+
+
email
phone
+
+ (falls paymenttype =
3)
+ (falls
customerGroup = „p“)
+
cellphone
birthday
language
AN…50
AN…5
AN…50
Vorgabe
ISO3166 alpha-3
AN…50
AN…15
AN…50
N8
Vorgabe
14
Anrede
Titel (z.b. „Dr.“)
Vorname
Nachnahme
Straße
Hausnummer (Falls nicht
von der Straße trennbar,
im Feld street mitübergeben)
Adresszusatz / c/o
Postleitzahl
Ort
Land (z.B. „DEU“)
E-Mail
Telefonnummer
Handynummer
Geburtsdatum
(YYYYMMDD)
Sprachkennzeichen (z.B.
ip
+
customerGroup
+
ISO 639-1
Vorgabe
IPv4
Vorgabe
„p“: Privatkunde (B2C)
„b“: Geschäftskunde (B2B)
„de“)
IP-Adresse des Kunden
Kundengruppe
Wichtig! Das B2B Produkt muss separat freigeschaltet werden
Parameter
(Lieferdaten)
usebillingaddress
Pflicht
Format
Kommentar
+
shipping_salutation
+
Rechnungsadresse = Lieferadresse?
(Falls „Ja“ müssen sämtliche Parameter für die Lieferdaten leer bleiben.)
Anrede Versandadresse
shipping_title
shipping_firstname
shipping_lastname
shipping_street
shipping_streetno
+
+
+
-
Vorgabe
0: Nein
1: Ja
Vorgabe
(siehe Abschnitt
11.1)
AN…20
AN…50
AN…50
AN…50
AN…15
shipping_addressAddition
shipping_zip
shipping_city
shipping_country
+
+
+
shipping_phone
shipping_cellphone
-
AN…50
AN…5
AN…50
Vorgabe
ISO3166 alpha-3
AN…15
AN…50
Telefonnummer Versandadresse
Handynummer Versandadresse
Kommentar
Vor- und Zuname des
Kontoinhabers
accountnumber
+ (falls paymentType in {2,3}) N…10
Kontonummer
sortcode
+ (falls paymentType in {2,3}) N...8
Bankleitzahl
Hinweis: Die Bankdaten werden nur bei den Zahlungsarten „Zahlung per Lastschrift“ und „Ratenkauf“
ausgewertet. Der übergebene Wert für den Parameter „paymenttype“ muss in diesem Fall also „2“
oder „3“ sein. Andernfalls werden die Daten ignoriert.
(Bankdaten)
accountholder
Pflicht
+ (falls paymentType in {2,3})
Titel Versandadresse (z.b. „Dr.“)
Vorname Versandadresse
Nachname Versandadresse
Straße Versandadresse
Hausnummer Versandadresse (Falls
nicht von der Straße trennbar, bitte
alles im Feld ‚shipping_street‘ übergeben)
Adresszusatz / c/o Versandadresse
Postleitzahl Versandadresse
Ort Versandadresse
Land Versandadresse (z.B. „DEU“)
15
Format
AN…100
(Zusätzliche Parameter
für den Ratenkauf)
ratecount
totalamount
Pflicht
Format
+ (falls paymentType = 3)
+ (falls paymentType = 3)
N…2
N…10
Kommentar
Gewählte Anzahl Raten
Bruttowert der Bestellung
+ Zinsaufschlag
+ Transaktionsgebühr
Hinweis: Diese zusätzlichen Parameter werden nur für die Zahlart „Ratenkauf“ ausgewertet. Der
übergebene Wert für den Parameter „paymentType“ muss in diesem Fall also „3“ sein. Andernfalls
werden die Daten ignoriert.4
Format
Kommentar
AN…200
Name der Firma
Vorgabe
Rechtsform der Firma
„gmbh“: GmbH
„ag“: AG
„misc“: Sonstige
Hinweis: Die Firmendaten werden nur für die Kundengruppe „Firmenkunden“ (B2B) und die Zahlart
„Kauf auf Rechnung“ ausgewertet. Der übergebene Wert für den Parameter „customerGroup“ muss
in diesem Fall also „b“ und der übergebene Wert für den Parameter „paymenttype“ muss gleich „1“
sein. Andernfalls werden die Daten ignoriert. Das Produkt B2B muss separat bei Billpay aktiviert werden.
(Firmendaten)
name
legalForm
Pflicht
+ (falls customerGroup = „b“)
+ (falls customerGroup = „b“)
Optionale Liste
0..20 Bestellungen
(Bestellhistorie)
horderid
Pflicht
Format
Kommentar
+
AN…20
hdate
hamount
+
+
(YYYYMMDD hh:mm:ss)
N…7
hcurrency
+
hpaymenttype
+
Vorgabe
ISO 4217
Vorgabe
0: Lastschrift
1: Kreditkarte
2: Vorkasse
3: Nachnahme
4: Paypal
5: Sofortüberweisung/Giropay
Historische Bestellnummer
des Händlers
Bestelldatum
Gesamtpreis
(In kleinster Währungseinheit! Z.B. 100,00 Euro =
10000)
Währung (z.B. „EUR“)
4
Zahlungsart:
- Lastschrift
- Kreditkarte
- Vorkasse
- Nachnahme
- Paypal
- Sofortüberwei-
Bitte beachten Sie für die Implementierung des Ratenkaufs auch das Dokument „Zusatzdokument zur Integration des Billpay-Ratenkaufs“
16
6: Rechnung
7: Billpay (Rechnung)
100: Other
hstatus
+
Vorgabe
0: Bezahlt
1: Offen
2: Mahnwesen
3: Inkasso
4: Überbezahlt
5: Unterbezahlt
6: Geplatzt
sung/Giropay
- Rechnung
- Billpay (Rechnung)
- Other
Status der Bestellung
Hinweis: Bitte maximal die 20 letzten Bestellungen des Kunden im Shop für die Bestellhistorie übergeben.
Ende „preauthorize“ Request
Hinweis: Die mit der Vorauthorisierung übergebenen Bestelldaten werden einer Konsistenzprüfung
unterzogen. Dabei muss die Summe der Einzelpostitionen mit den übergebenen aggregierten Gesamtwerten übereinstimmen. Folgende Bedingungen müssen gelten:
1) carttotalpricegross = Summe(articlequantity
- rebategross
X
articlepricegross) + shippingpricegross
2) carttotalprice = Summe(articlequantity x articleprice) + shippingprice - rebate
Falls einzelne Eingabefelder mit Pflichtwerten nicht standardmässig im Bestellprozess des Shops vorgesehen sind, bietet es sich an, die Eingabefelder für diese Werte nach Auswahl der Zahlart speziell
für die jeweilige Zahlart anzuzeigen. Werte, für die dies häufig der Fall ist, sind das Geburtsdatum
und die Anrede/das Geschlecht.
7.6.2.2 RESPONSE „ preauthorize “
Parameter
status
Pflicht
-
bptid
+(falls status = „APPROVED“)
Parameter
(korrigierte
Addressdaten)
Pflicht
Format
Vorgabe
„APPROVED“/“DENIED“
AN...50
Format
Kommentar
Status der Identitäts- und
Bonitätsprüfung
BILLPAY-Transaktionsnummer
Kommentar
17
street
streetno
zip
city
country
+(falls status = „APPROVED“)
+(falls status = „APPROVED“)
+(falls status = „APPROVED“)
+(falls status = „APPROVED“)
+(falls status = „APPROVED“)
AN…50
AN…15
AN…5
AN…50
Vorgabe
ISO3166
alpha-3
Korrigierte Straße
Korrigierte Hausnummer
Korrigierte Postleitzahl
Korrigierter Ort
Korrigiertes Land (z.B. „DEU“)
Hinweis: Im Falle des „APPROVED“ Statusflags korrigiert Billpay ggf. die Rechnungs- bzw. Lieferadresse. Billpay übernimmt für die Richtigkeit dieser Korrektur keine Haftung. Der Händler kann selbst entscheiden, ob er die korrigierten Adressen verwendet.
Hinweis: Im Falle des „DENIED“ Statusflags besteht keine Möglichkeit, dass der Kauf über Billpay abgewickelt werden kann. Folglich dürfen dem Kunden anschließend die Billpay-Zahlarten für die aktuelle Nutzersitzung nicht mehr angeboten werden.
Hinweis: Im Falle eines Fehlercodes größer 1 (error_code > 1) und dem Fehlen des Statusfeldes liegt
ein einfacher Validierungsfehler vor (z.B. ungültige Email oder Fehlen des Wertes für ein Pflichtfeld).
In diesem Fall muss die Kundenfehlermeldung (Feld customer_message) angezeigt werden, so dass
der Kunde die fehlerhaften Eingaben korrigieren kann.
Falls die Vorauthorisierung im Auto-Capture Modus ausgeführt wird, werden im Erfolgsfall die Bankdaten mit der XML-Response zurückgeliefert (nur für Zahlart „Kauf auf Rechnung“).
Parameter
(approved)
account_holder
account_number
bank_code
bank_name
invoice_reference
Pflicht
Format
Kommentar
+ (falls capturerequestnecessary
= „0“)
+ (falls capturerequestnecessary
= „0“)
+ (falls capturerequestnecessary
= „0“)
+ (falls capturerequestnecessary
= „0“)
+ (falls capturerequestnecessary
= „0“)
AN…255
Kontoinhaber für die Forderung (i.d.R. „Billpay GmbH)
Billpay Kontonummer für die
Forderung
Billpay BLZ für die Forderung
AN…40
AN…16
AN…255
AN…255
Billpay Name der Bank für die
Forderung
Verwendungszweck
7.6.3 Finalisierung der Bestellung (capture)
Der Request „capture“ schließt die zuvor mit dem „preauthorize“ Request eröffnete Bestellung ab,
vorausgesetzt, die Vorauthorisierung wurde nicht im Auto-Capture Modus ausgeführt. Mit erfolgreicher Durchführung des „capture“ Requests wird die Forderung, die sich aus der Bestellung gegenüber
dem Kunden ergibt an Billpay abgetreten.
18
Wichtig! Der Capture-Request muss aus dem Checkout gesendet werden. Es ist nicht zulässig, dass
dieser XML-Request durch eine Aktion im Backend durch den Händler ausgelöst wird. Die Vorauthorisierungsanfrage ist dementsprechend nur so lange gültig, wie die shopseitige Nutzsitzung gültig ist.
7.6.3.1 REQUEST „capture“
Parameter
bptid
carttotalgross
Pflicht
+
+
Format
N…12
N…7
currency
+
reference
+
Vorgabe
ISO 4217
AN…40
customerid
-
AN…20
Kommentar
BILLPAY Transaktionsnummer
Bruttowert der Bestellung
(In kleinster Währungseinheit! Z.B.
100,00 Euro = 10000)
Währung (z.B. „EUR“)
Bestellnummer beim Händler.
(Erlaubte Zeichen: 0-9, a-z, A-Z, .,-,_,/)
Kundennummer beim Händler
(Erlaubte Zeichen: 0-9, a-z, A-Z, .,-,_,/).
Nur bei Bestands- oder Neukunden
7.6.3.2 RESPONSE „capture“
Mit der capture-Response wird im Fall der Zahlart „Kauf auf Rechnung“ die Bankverbindung übertragen, auf die die Zahlung durch den Kunden zu leisten ist. Die Bankverbindung sollte idealweise schon
auf der Bestellbestätigung aufgeführt werden, um Verwechslungen und daraus resultierende Zahlungsausfälle zu vermeiden. Darüber hinaus muss die Bankverbindung auf der Rechnung angezeigt
werden. Bitte beachten Sie jedoch, dass die Daten für die Rechnung erst nach Ausführung des „invoiceCreated“-Requests vollständig sind, da erst zu diesem Zeitpunkt das Fälligkeitsdatum berechnet
und in der Response zurückgeliefert wird.
Im Fall von „Kauf per Lastschrift“ spielen diese Felder keine Rolle und können ignoriert werden.
Parameter
(approved)
account_holder
Pflicht
Format
Kommentar
+
AN…255
account_number
+
AN…40
bank_code
bank_name
+
+
AN…16
AN…255
invoice_reference
+
AN…255
Kontoinhaber für die Forderung
(i.d.R. „Billpay GmbH)
Billpay Kontonummer für die Forderung
Billpay BLZ für die Forderung
Billpay Name der Bank für die Forderung
Verwendungszweck
19
7.7 Backend Requests
Die folgenden Requests werden entweder aus dem Backend des Shops oder – falls diese zum Einsatz
kommt - aus der Warenwirtschaft gesendet.
7.7.1 Aktivierung / Layout der Endkundenrechnung
Der invoiceCreated-Request wird bei „Kauf auf Rechnung“ dazu verwendet, das Zahlungsziel (20 bzw.
30 Tage ab Rechnungsdatum) für den Kunden zu starten. Dieser Vorgang wird Aktivierung genannt.
Bei „Zahlung per Lastschrift“ und „Ratenkauf“ wird durch diesen Request das Einzugsdatum der Lastschrift für den gesamten Bestellwert bzw. beim Ratenkauf für die erste Rate bestimmt. Der invoiceCreated-Request muss für jede Bestellung immer unmittelbar vor der Rechnungserstellung und der
Auslieferung der Ware gesendet werden. Erst nach Erhalt einer erfolgreichen Antwort für diesen
Request stehen alle notwendigen Daten zur Verfügung, die auf der Kundenrechnung angezeigt werden müssen. Einzige Ausnahme ist, wenn die Bestellung nicht zu Stande kommt. In diesem Fall muss
die Bestellung bei Billpay storniert werden (siehe „cancel“-Request).
Wichtig! Vor Senden des invoiceCreated-Requests müssen Verfügbarkeit und Auslieferbarkeit der
bestellten Artikel für die aktuelle Bestellung sichergestellt werden.
7.7.1.1 REQUEST „invoiceCreated“
Parameter
carttotalgross
Pflicht
+
Format
N…7
currency
+
reference
+
Vorgabe
ISO 4217
AN…40
delayindays
+
N...3
Kommentar
Aktueller Bruttowert der gesamten Bestellung (etwaige Teilstornierungen berücksichtigt)
(In kleinster Währungseinheit! Z.B. 100,00 Euro =
10000)
Währung (z.B. „EUR“)
Bestellnummer der Hauptbestellung beim Händler.
(Erlaubte Zeichen: 0-9, a-z, A-Z, .,-,_,/)
Anzahl Tage, um die sich das Zahlungsziels zusätzlich zu den 20/30 Tagen verschiebt
Es ist aktuell nur die Aktivierung der gesamten Bestellung möglich.
7.7.1.2 RESPONSE „invoiceCreated“
Mit der invoiceCreated-Response wird für „Kauf auf Rechnung“ die Bankverbindung, auf die die Zahlung zu leisten ist (hierbei handelt es sich um exakt dieselbe Kontoverbindung, die bereits mit der
„capture“-Response erhalten wurde) und das Fälligkeitsdatum der Forderung und für „Ratenkauf“
die Fälligkeitsdaten für jede einzelne Rate übertragen. Diese Daten müssen jeweils auf der Rechnung
angezeigt werden. Für „Zahlung per Lastschrift“ werden keine zusätzlichen Daten zurückgegeben. Für
die Rechnung genügt hier das anzeigen eines statischen Textes (s.u.).
20
Parameter
account_holder
Pflicht
+
Format
AN…255
account_number
+
AN…40
bank_code
bank_name
+
+
AN…16
AN…255
invoice_reference
invoice_duedate
+
+
AN…255
N…8
activation_performed
+
Vorgabe
1: Ja
0: Nein
Kommentar
Kontoinhaber (i.d.R. „Billpay
GmbH“)
Kontonummer (variiert für jede Bestellung!)
Billpay BLZ für die Forderung
Billpay Name der Bank für die Forderung
Verwendungszweck
Zahlungsziel des Kunden
(YYYYMMDD).
Gibt an, ob die Bestellung mit dieser
Anfrage aktiviert wurde
Wichtig! Für die Zahlart „Kauf auf Rechnung“ variiert die Kontonummer für jede Bestellung!
Für die Gestaltung der Zahlungsinformationen dürfen ausschließlich die Texte der folgenden Abbildungen verwendet werden. Zusätzlich zu den Zahlungsinformationen muss auf der Rechnung das
Billpay-Logo abgebildet werden. Das skalierte Logo in unterschiedlichen Größen kann unter
http://www.billpay.de/billpay-logo herunterladen werden.
Kauf auf Rechnung (Billpay)
Bitte überweisen Sie den Gesamtbetrag unter Angabe der Billpay-Transaktionsnummer
im Verwendungszweck ($$ invoice_reference $$) innerhalb der Zahlungsfrist bis zum
$$ invoice_duedate $$ auf das folgende Konto:
Kontoinhaber:
$$ account_holder $$
Geldinstitut:
$$ bank_name $$
BLZ:
$$ bank_code $$
Kontonummer:
$$ account_number $$
Fälligkeitsdatum:
$$ invoice_duedate $$
Verwendungszweck:
$$ invoice_reference $$
Lastschrift (Billpay)
Vielen Dank, dass Sie sich für die Zahlung per Lastschrift mit Billpay entschieden haben.
Der fällige Betrag wird in den nächsten Tagen durch die Billpay GmbH von dem bei der
Bestellung angegebenen Konto abgebucht.
Gestaltung der Zahlungsinformationen auf der Rechnung
21
Informationen zur Gestaltung der Rechnung im Fall einer Bestellung mit dem Ratenkauf können dem
Dokument „Zusatzdokumentation für die Integration des Billpay-Ratenkauf (deutsch)“ entnommen
werden.
Wichtig! Im Falle der Zahlart „Kauf auf Rechnung“ darf ausschließlich die Bankverbindung von Billpay
auf der Endkundenrechnung angezeigt werden. Die Bankverbindung des Händlers darf nicht angezeigt werden.
7.7.2 Vollstornierung
Über den „cancel“ Request“ wird eine zuvor mit dem „capture“ Request eröffnete Forderung vollständig storniert. Falls der Kunde bereits Zahlungen an Billpay geleistet hat („Kauf auf Rechnung“)
oder der fällige Betrag bereits von dem Konto des Kunden abgebucht wurde („Kauf per Lastschrift“),
wird individuell mit dem Händler abgestimmt, wie die Rückabwicklung der bereits geleisteten Zahlung umgesetzt wird.
Hinweis: Ggf. entstehen bei der Vollstornierung einer Bestellung Kosten für den Händler.
So bald eine Stornierung bei Billpay eingeht, wird der Kunde von Billpay per E-Mail über die Stornierung informiert.
7.7.2.1 REQUEST „cancel“
Parameter
reference
Pflicht
+
Format
AN…40
carttotalgross
+
N…7
currency
+
Vorgabe
ISO 4217
Kommentar
Bestellnummer des Händlers.
(Erlaubte Zeichen: 0-9, a-z, A-Z, .,-,_,/)
Aktueller Bruttowert der Bestellung (Etwaige Teilstornierungen berücksichtigt)
(In kleinster Währungseinheit! Z.B. 100,00 Euro =
10000)
Währung (z.B. „EUR“)
7.7.2.2 RESPONSE „cancel“
Es werden gegenüber den generellen Parametern keine zusätzlichen Parameter übergeben.
7.7.3 Teilstornierung/Teilretour
Über den „partialcancel“ Request kann eine Bestellung im Billpay-System nachträglich redziert werden, beispielsweise wenn der Kunde von seinem Widerrufsrecht Gebrauch macht und einen Teil seiner Bestellung zurücksendet. Beim Entfernen einzelner Artikel aus der offenen Bestellung wird der
Gesamtbetrag um den Betrag der einzelnen Artikel reduziert. Lieferkosten sowie etwaige Rabatte,
die mit der Vorauthorisierung übergeben wurden, können ebenfalls teilstorniert werden. So bald ein
22
„partialcancel“ Request über die XML-Schnittstelle eingeht, informiert Billpay den Kunden umgehend
über die Anpassung des Forderungsbetrags.
7.7.3.1 REQUEST „partialcancel“
Parameter
reference
Pflicht
+
Format
AN…40
Kommentar
Bestellnummer des Händlers.
(Erlaubte Zeichen: 0-9, a-z, A-Z, .,,_,/)
Änderung des NettoRabattbetrages der Bestellung.
Positiver Wert bedeutet Verringerung des Rabattwertes.
(In kleinster Währungseinheit! Z.B.
100,00 Euro = 10000)
Änderung des BruttoRabattbetrages der Bestellung.
Positiver Wert bedeutet Verringerung des Rabattwertes.
(In kleinster Währungseinheit! Z.B.
100,00 Euro = 10000)
Reduzierung der NettoLiefergebühren.
(In kleinster Währungseinheit! Z.B.
100,00 Euro = 10000)
Reduzierung der BruttoLiefergebühren
(In kleinster Währungseinheit! Z.B.
100,00 Euro = 10000)
Währung (z.B. „EUR“)
rebatedecrease
+
(-) N…7
rebatedecreasegross
+
(-) N…7
shippingdecrease
-
N...7
shippingdecreasegross
-
N...7
currency
+
Vorgabe
ISO 4217
Pflicht
Format
Kommentar
+
+
AN…20
N…7
Artikel-ID/Item-ID beim Händler
Anzahl der Artikel, die storniert
werden sollen
Optionale Liste
Parameter für 0..n Artikel
(Bestelldaten Artikel)
articleid
articlequantity
7.7.3.2 RESPONSE „partialcancel“
Es werden gegenüber den generellen Parametern keine zusätzlichen Parameter übergeben.
23
8 Clientseitige API
Billpay stellt für die in Abschnitt 7 beschriebene XML-Schnittstelle eine clientseitige API in verschiedenen Programmiersprachen zur Verfügung. Diese API vereinfacht die Integration der BillpayZahlungsarten in Ihren Online-Shop erheblich. Zu diesem Zweck realisiert die API eine Abstraktionsebene oberhalb der auf HTTP und XML basierenden Kommunikation zwischen dem Shop und der XMLSchnittstelle, so dass sich der Entwickler nicht um die Details der Kommunikation kümmern braucht.
Die nötigen Bibliotheken sowie ausführliche Programmbeispiele für die Verwendung der clientseitigen API können unter der folgenden URL heruntergeladen werden:
•
http://www.billpay.de/haendler/downloads
24
9
XML-Beispiele
<?xml version="1.0" encoding="UTF-8" ?>
<data api_version="1.4.0">
<default_params mid="2" pid="3"
bpsecure="0d48732f425b6df88c58244d6882369e" />
<locale country="DEU" currency="EUR" language="de" />
</data>
XML-Beispiel 1: moduleConfig-Request
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<data customer_message="" error_code="0" merchant_message="">
<minvalue directdebit="0" hirepurchase="10000" invoice="0"
invoicebusiness="0" />
<limit directdebitstatic="10000000" hirepurchasestatic="100000"
invoicebusinessstatic="10000000" invoicestatic="10000000"
static="10000000" />
<permissions active="1" directdebitallowed="1"
hirepurchaseallowed="1" invoiceallowed="1"
invoicebusinessallowed="1" />
</data>
XML-Beispiel 2: moduleConfig-Response
<?xml version="1.0" encoding="UTF-8" ?>
<data api_version="1.4.0" tcaccepted="1" paymenttype="1">
<default_params mid="2" pid="3"
bpsecure="0d48732f425b6df88c58244d6882369e" />
<customer_details customerid="123456" customertype="e"
salutation="Herr" title="Dr." firstName="Max"
lastName="Mustermann" street="Musterstraße" streetNo="23"
addressAddition="" zip="12345" city="Musterstadt"
country="DEU" email="[email protected]" phone="0302333459"
cellPhone="01775112389" birthday="19850911"
language="de" ip="85.214.7.22" customerGroup="p" />
<shipping_details useBillingAddress="1" salutation=""
title="" firstName="" lastName="" street="" streetNo=""
addressAddition="" zip="" city="" country="" phone=""
cellPhone="" />
<total shippingname="Express-Versand" shippingprice="500"
shippingpricegross="650" rebate="500" rebategross="595"
carttotalprice="1780" carttotalpricegross="2795" currency="EUR" />
<article_data>
<article articleid="article001" articlequantity="12"
articlename="Kaffetasse 08/15" articledescription="Eine
Kaffetasse aus Porzelan" articleprice="120"
articlepricegross="195" />
<article articleid="article002" articlequantity="4"
articlename="Kuchenteller 07-11"
articledescription="Kuchenteller - weiss" articleprice="85"
articlepricegross="100" />
</article_data>
<order_history_data>
<order_history horderid="1233343321" hdate="20080101 10:23:30"
hamount="12300" hcurrency="EUR" hpaymenttype="4" hstatus="0" />
</order_history_data>
</data>
XML-Beispiel 3: preauthorize-Request für die Zahlart „Kauf auf Rechnung (B2C)“
25
<?xml version="1.0" encoding="UTF-8" ?>
<data api_version="1.4.0" tcaccepted="1" paymenttype="1">
<default_params mid="2" pid="3"
bpsecure="0d48732f425b6df88c58244d6882369e" />
<customer_details customerid="123456" customertype="e"
salutation="Herr" title="Dr." firstName="Max"
lastName="Mustermann" street="Musterstraße" streetNo="23"
addressAddition="" zip="12345" city="Musterstadt"
country="DEU" email="[email protected]" phone="0302333459"
cellPhone="01775112389" birthday="19850911"
language="de" ip="85.214.7.22" customerGroup="b" />
<shipping_details useBillingAddress="1" />
<total shippingname="Express-Versand" shippingprice="500"
shippingpricegross="650" rebate="500" rebategross="595"
carttotalprice="1780" carttotalpricegross="2795" currency="EUR" />
<company_details name="Billpay GmbH" legalForm="gmbh" />
<article_data>
<article articleid="article001" articlequantity="12"
articlename="Kaffetasse 08/15" articledescription="Eine
Kaffetasse aus Porzelan" articleprice="120"
articlepricegross="195" />
<article articleid="article002" articlequantity="4"
articlename="Kuchenteller 07-11"
articledescription="Kuchenteller - weiss" articleprice="85"
articlepricegross="100" />
</article_data>
</data>
XML-Beispiel 4: preauthorize-Request für die Zahlart „Kauf auf Rechnung (B2B)“
26
<?xml version="1.0" encoding="UTF-8" ?>
<data api_version="1.4.0" tcaccepted="1" paymenttype="2">
<default_params mid="2" pid="3"
bpsecure="0d48732f425b6df88c58244d6882369e" />
<customer_details customerid="123456" customertype="e"
salutation="Herr" title="Dr." firstName="Max"
lastName="Mustermann" street="Musterstraße" streetNo="23"
addressAddition="" zip="12345" city="Musterstadt"
country="DEU" email="[email protected]" phone="0302333459"
cellPhone="01775112389" birthday="19850911"
language="de" ip="85.214.7.22" customerGroup="p" />
<shipping_details useBillingAddress="1" />
<total shippingname="Express-Versand" shippingprice="500"
shippingpricegross="650" rebate="500" rebategross="595"
carttotalprice="1780" carttotalpricegross="2795" currency="EUR" />
<bank_account accountholder="Max Mustermann" accountnumber="4973024088"
sortcode="10050000" />
<article_data>
<article articleid="article001" articlequantity="12"
articlename="Kaffetasse 08/15" articledescription="Eine
Kaffetasse aus Porzelan" articleprice="120"
articlepricegross="195" />
<article articleid="article002" articlequantity="4"
articlename="Kuchenteller 07-11"
articledescription="Kuchenteller - weiss" articleprice="85"
articlepricegross="100" />
</article_data>
</data>
XML-Beispiel 5: preauthorize-Request für die Zahlart „Kauf per Lastschrift“
<?xml version="1.0" encoding="UTF-8" ?>
<data api_version="1.4.0" tcaccepted="1" paymenttype="1"
capturerequestnecessary="0">
<default_params mid="2" pid="3"
bpsecure="0d48732f425b6df88c58244d6882369e" />
<customer_details customerid="123456" customertype="e"
salutation="Herr" title="Dr." firstName="Max"
lastName="Mustermann" street="Musterstraße" streetNo="23"
addressAddition="" zip="12345" city="Musterstadt"
country="DEU" email="[email protected]" phone="0302333459"
cellPhone="01775112389" birthday="19850911"
language="de" ip="85.214.7.22" customerGroup="p" />
<shipping_details useBillingAddress="1" />
<total shippingname="Express-Versand" shippingprice="500"
shippingpricegross="650" rebate="500" rebategross="595"
carttotalprice="1780" carttotalpricegross="2795" currency="EUR"
reference="ref1234567890" />
<article_data>
<article articleid="article001" articlequantity="12"
articlename="Kaffetasse 08/15" articledescription="Eine
Kaffetasse aus Porzelan" articleprice="120"
articlepricegross="195" />
<article articleid="article002" articlequantity="4"
articlename="Kuchenteller 07-11"
articledescription="Kuchenteller - weiss" articleprice="85"
articlepricegross="100" />
</article_data>
</data>
XML-Beispiel 6: preauthorize-Request für die Zahlart „Kauf auf Rechnung (B2C)“ (im Auto-Capture Modus)
27
<?xml version="1.0" encoding="UTF-8"?>
<data bptid="66ffe4d2-dc04-436d-8def-d057eb024154" customer_message=""
error_code="0" merchant_message="" status="APPROVED">
<corrected_address street="Musterstraße" streetNo="23" zip="12345"
city=" Musterstadt" country="DEU" />
</data>
XML-Beispiel 7: preauthorize-Response im Erfolgsfall ("Kauf auf Rechnung", kein Auto-Capture)
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<data bptid="53594569-b325-4a3f-8790-b6eddd09c4c2" customer_message=""
error_code="0" merchant_message="" status="APPROVED">
<corrected_address city="Teststadt" country="DEU" street="Musterstraße"
streetNo="23" zip="12345"></corrected_address>
<invoice_bank_account account_holder="Billpay GmbH"
account_number="4973034580" activation_performed=""
bank_code="10050000" bank_name="Berliner Sparkasse"
invoice_reference=" RG: Bestellnummer ">
</invoice_bank_account>
</data>
XML-Beispiel 8: preauthorize-Response im Erfolgsfall ("Kauf auf Rechnung", Auto-Capture)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<data customer_message="Fehler: Der Pflicht-Parameter [Rechnungsaddresse-Straße] wurde nicht übergeben." error_code="7"
merchant_message="Fehler: Der Pflicht-Parameter [Rechnungsaddresse-Straße] wurde nicht übergeben." />
XML-Beispiel 9: preauthorize-Response im Fehlerfall (die Straße wurde nicht übergeben)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<data customer_message="Bitte wählen Sie eine andere Zahlart. Leider
können wir Ihnen für diese Transaktion die ausgewählte Zahlart von Billpay nicht anbieten." error_code="32"
merchant_message="Bitte wählen Sie eine andere Zahlart. Der Kunde
wurde aufgrund fehlgeschlagener Identitäts- bzw. Bonitätsprüfung abgelehnt." status="DENIED" />
XML-Beispiel 10: preauthorize-Response im Fehlerfall (Kunde wird wg. fehlgeschlagener Identitätsoder Bonitätsprüfung abgelehnt)
28
<?xml version="1.0" encoding="UTF-8"?>
<data api_version="1.4.0">
<default_params mid="2" pid="3"
bpsecure="0d48732f425b6df88c58244d6882369e" />
<capture_params bptid="b0fa7ec2-ae19-49c1-8984-70001518e416"
carttotalgross="3390" currency="EUR"
reference="TA345345JK" customerid="123456" />
</data>
XML-Beispiel 11: capture-Request
<?xml version="1.0" encoding="UTF-8"?>
<data customer_message="" error_code="0" merchant_message="">
<invoice_bank_account account_holder="Billpay GmbH"
account_number="4973024061" bank_code="10050000"
bank_name="Berliner Sparkasse" invoice_duedate=""
invoice_reference="RG: Bestellnummer" />
</data>
XML-Beispiel 12: capture-Response ("Kauf auf Rechnung B2C/B2B")
<?xml version="1.0" encoding="UTF-8"?>
<data api_version="1.4.0">
<default_params mid="2" pid="3"
bpsecure="0d48732f425b6df88c58244d6882369e" />
<invoice_params carttotalgross="3390" currency="EUR"
reference="TA345345JK" delayindays="0" />
</data>
XML-Beispiel 13: „invoiceCreated“-Request (Alle Zahlarten, Vollständige Aktivierung der Bestellung
mit einem Gesamtwert von 33,90€, die weiter oben mit dem preauthorize-Request initiiert wurde)
29
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<data customer_message="" error_code="0" merchant_message="">
<invoice_bank_account account_holder="Billpay GmbH"
account_number="4973004818" bank_code="10050000"
bank_name="Berliner Sparkasse"
invoice_duedate="20100628" invoice_reference="TA345345JK"
activation_performed="1" />
</data>
XML-Beispiel 14: invoiceCreated-Response („Kauf auf Rechnung B2C/B2B“)
<?xml version="1.0" encoding="UTF-8" ?>
<data api_version="1.4.0">
<default_params mid="2" pid="3"
bpsecure="0d48732f425b6df88c58244d6882369e" />
<cancel_params reference="TA345345JK" carttotalgross="3390"
currency="EUR" />
</data>
XML-Beispiel 15: cancel-Request (alle Zahlarten)
<?xml version="1.0" encoding="UTF-8"?>
<data api_version="1.4.0">
<default_params mid="2" pid="3"
bpsecure="0d48732f425b6df88c58244d6882369e" />
<cancel_params reference="TA345345JK" rebatedecrease="0"
rebatedecreasegross="0" shippingdecrease="0"
shippingdecreasegross="0" currency="EUR" />
<canceled_articles>
<article articleid="article001" articlequantity="1" />
<article articleid="article002" articlequantity="1" />
</canceled_articles>
</data>
XML-Beispiel 16: partialCancel-Request (alle Zahlarten)
30
10 Kontakt für Rückfragen
Bei technischen Fragen zur Schnittstelle wenden Sie sich bitte an:
Billpay GmbH
Saarbrücker Straße 21/22
D-10405 Berlin
Telefon:
+49 (0) 30 609893550
E-Mail:
[email protected]
31
11 Anhang
11.1 Erlaubte Werte für das Feld „salutation“
Das Feld „salutation“ bzw. „shipping_salutation“ wird von Billpay genutzt, um auf das Geschlecht des
anfragten Kunden zu schließen. Folgende Werte dürfen übergeben werden (Groß- und Kleinschreibung unerheblich):
Geschlecht „weiblich“:
-
frau
fräulein
fr
fr.
miss
ms
ms.
mrs
mrs.
signora
sig.ra
donna
la signora
madame
mme
mademoiselle
mlle
mle
Geschlecht „männlich“:
-
herr
hr
hr.
mister
mr
mr.
sir
signor
sig
sig.
gentleman
gentiluomo
padrone
monsieur
m.
m
32

Documentos relacionados