SOFORT API
Met de HTTP API voor Betaling starten kunt u betalingen starten en de status ervan controleren. Gebruik de HTTP API wanneer u verzoeken wilt sturen naar DigiWallet vanuit uw shop of app en als de DigiWallet PHP SDK niet gebruikt kan worden.
Afrekenen in 3 stappen:
- Vraag de bezoeker om land te kiezen (Landkeuze) ;
- Start de betaling bij DigiWallet door een URL aan te roepen met alle kenmerken van de betaling. DigiWallet geeft een link naar de bank en het transactienummer (Start API) ;
- De status van de betaling wordt doorgemeld en de bezoeker teruggestuurd naar uw site. U kunt met de "Check API" de status van de betaling controleren (Check API) ;
Land keuze
Bij het starten van een betaling dient u het land van de klant te specificeren door deze bijvoorbeeld uit een selectie in een pulldown menu te laten kiezen. Geldige landen zijn:
AT
OostenrijkBE
BelgiëCH
ZwitserlandDE
DuitslandES
SpanjeIT
ItaliëNL
NederlandPL
Polen
Start API Betaling starten
Voor het starten van de betaling roept u de Start API aan. Van de Start API krijgt u de betaallink om uw klant door te verwijzen en het transactienummer (voor in uw database).
Roep de volgende URL aan met GET
of POST
:
https://transaction.digiwallet.nl/directebanking/start
Met de volgende parameters (* = verplicht):
Variabele | Toelichting | Voorbeeld |
---|---|---|
ver* | API versie, dit is versie 2 | 2 |
rtlo* | Shop ID (ook wel subaccount of layoutcode) waarop de betaling geboekt moet worden | 93393 |
country* |
Landcode gekozen door de klant in de vorige stap, in het formaat ISO 3166-1
alpha-2 Geldige waarden zijn: AT ,
BE ,
CH , DE , IT , NL
|
DE |
type* |
Type Betaling:
|
1 |
amount* | Bedrag in eurocenten: Minimaal 10 , Maximaal 500000 | 1000 |
currency |
3-letterige ISO valuta code voor de betaling. Wanneer niet voorzien, staat standaard op EUR
voor Euro's.Merk op dat als een andere waarde dan EUR
voorzien is, er wel een specifieke prijsafspraak voor die valuta moet bestaan in het Outlet. Gelieve de Sales afdeling te contacteren voor meer informatie. |
EUR |
description* | Omschrijving van de transactie: dit wordt op het bankafschrift van de klant vermeld. Gebruik alleen letters of cijfers, max. 32 tekens | Webshop order #1234 |
reporturl |
Report URL: wordt aangeroepen na betaling (van server naar server) door middel van een POST .
Controleer hier of de betaling inderdaad is afgerond en verwerk de bestelling verder. Dit script wordt ook aangeroepen als de klant de browser per ongeluk zou sluiten.
Als parameters worden meegestuurd:
|
https://www.myshop.nl /reportOrder |
returnurl* |
Return URL: naar deze pagina wordt uw klant verwezen na een (succesvolle) betaling. Aan deze URL wordt het transactienummer in de variabele trxid
meegegeven.Voorbeeld: https://www.myshop.nl/thankYouPage?trxid=30626804185492 |
https://www.myshop.nl /thankYouPage |
cancelurl |
Cancel URL: de URL waar de bezoeker naar toe wordt gestuurd na het afbreken van de betaling. |
https://www.myshop.nl /orderCancelled |
userip* | IP adres van de klant. | 213.76.8.33 |
test |
Bepaalt of het DigiWallet Test Paneel moet worden gebruikt. Wanneer geactiveerd zal de launch URL een link naar het Test Paneel worden, waar geen echt geld verrekend kan worden. Merk op dat als uw outlet in test-modus is gezet via het DigiWallet Dashboard, deze parameter automatisch op 1 komt te staan. Vergeet deze optie niet uit te zetten als de site live gaat. Standaard staat testmode uit. |
"1" of "0" |
preprodtest |
Bepaalt of de acquirer test omgeving moet worden gebruikt, in plaats van het DigiWallet Test Paneel. Bij het gebruiken van de testverbinding wordt er geen echt geld afgeschreven. Als u dit op 1 zet zal dat ook de "test" parameter automatisch op 1 zetten. Dit maakt een speciale optie beschikbaar in het Sofort betaalscherm genaamd "Demo Bank". |
"1" of "0" |
U krijgt vervolgens een resultaat als volgt:
resultaatcode
transactienummer
|
bank-url
Voorbeeld
000000 103084|https://pay.digiwallet.nl/consumer/sofort/launch/103084/da85a5e0-b29e-11e8-9332-ecf4cbbfde30/0
U kunt vervolgens het transactienummer
opslaan in uw database en de bezoeker doorsturen naar de bank-url
door middel van een redirect.
Mogelijke resultaatcodes:
Resultaatcode | Omschrijving |
---|---|
000000 | Betaling is klaargezet |
DW_XE_0003 Validation failed, details: JSON-encoded array
|
Één of meer velden konden niet gevalideerd worden. U kunt de JSON array decoderen voor een gedetailleerde analyse. |
DW_IE_0002 Maximum retries at acquirer bank exceeded for primary and fallback | Het acquirer systeem reageerde meermaals op rij niet, wat aangeeft dat er misschien een storing gaande is. |
DW_IE_0006 System is busy, please retry later | Interne systemen zijn overbelast en DigiWallet is hoogstwaarschijnlijk al bezig met het probleem op te lossen. |
DW_IE_0001 Unknown internal error | Onbekende interne foutmelding. Mail naar techsupport@targetmedia.eu voor ondersteuning. |
Check API Status van een betaling opvragen
Aan de hand van het transactienummer kunt u controleren of de betaling daadwerkelijk is gedaan. Na de betaling wordt de report URL onder water aangeroepen door de DigiWallet server. Hierbij wordt ook de betaalstatus vermeld, maar we adviseren om veiligheidsredenen altijd zelf de status nog op te vragen bij DigiWallet.
Roep de volgende URL aan met een GET
of POST
:
https://transaction.digiwallet.nl/directebanking/check
Met de volgende parameters (* = verplicht):
Variabele | Toelichting | Voorbeeld |
---|---|---|
rtlo* | Shop ID (layoutcode) | 93393 |
trxid* | transactienummer | 30626804185492 |
test |
Als u de transactie in test-modus hebt gestart, roep de Check API dan ook aan in test-modus. Als u dit niet doet zal uw transactie niet gevonden worden. Merk op dat als uw outlet in test-modus is gezet via het DigiWallet Dashboard, deze parameter automatisch op 1 komt te staan. Vergeet deze optie niet uit te zetten als de site live gaat. Standaard staat testmode uit. |
1 |
once* |
Als u 1 invult, dan zal slechts eenmaal een OK status teruggegeven worden. Als de bovenstaande URL nog een keer wordt aangeroepen voor dezelfde transactie, dan volgt een melding DW_SE_0028 Transaction already checked . Als u voor once '0' invult, dan zal steeds een 000000 OK status terug blijven komen. |
0 |
Als de betaling met succes afgerond is, ontvangt u als antwoord :
000000 OK
Als de betaling nog niet is afgerond of de transactie is niet bekend :
Foutcode | Omschrijving |
---|---|
DW_SE_0020 Transaction has not been completed, try again later | Transactie is nog niet afgerond, probeer het later opnieuw |
DW_SE_0021 Transaction has been cancelled | Transactie is geannuleerd |
DW_SE_0022 Transaction has expired | Transactie is verlopen (max. 10 minuten) |
DW_SE_0023 Transaction could not be processed | De transactie kon niet verwerkt worden |
DW_IE_0001 Unknown internal error | Onbekende interne foutmelding. Mail naar techsupport@targetmedia.eu voor ondersteuning |
DW_SE_0028 Transaction already checked | Reeds ingewisseld |
DW_SE_0001 No layoutcode | Geen layoutcode opgegeven |
DW_SE_0018 No valid identifiers | Geen transactie-id opgegeven |
DW_SE_0016 Transaction not found | Geen transactie met dit ID gevonden |
DW_SE_0019 Layoutcode does not match transaction | Layoutcode hoort niet bij deze transactie |
Als u een oudere versie van de API gebruikt, dan komen sommige transactie status resultaten terug in een legacy formaat:
Foutcode | Omschrijving |
---|---|
TP0010 Transaction not finished yet, try again later | Transactie is nog niet afgerond, probeer het later opnieuw |
TP0011 Transaction canceled | Transactie is geannuleerd |
TP0012 Transaction expired (max. 1 hour) | Transactie is verlopen (max. 1 uur) |
TP0014 Already checked | Reeds ingewisseld |
Beschikbaar in plugins
This paymethod is supported in the following plugins: