Bankoverschrijving API

Met de HTTP API voor Bankoverschrijving kunt u een uniek transactienummer laten genereren. Wanneer uw klant het geld overmaakt naar DigiWallet onder vermelding van dit transactienummer, dan kunnen we de betaling aan uw webwinkel koppelen en de status terugmelden.


Afrekenen in 3 stappen:

  1. 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) ;
  2. Toon de bezoeker de informatie die nodig is om de betaling af te ronden (Betaalinstructie);
  3. Zodra de betaling is verwerkt, dat is ca. 2 werkdagen na betaling, wordt een terugmelding gestuurd. U kunt met de 'Check API' de status van de betaling controleren (Check API);

Start API Betaling starten


Voor het starten van de betaling roept u de Start API aan. Van de Start API krijgt u het transactienummer en de bankrekening, waarmee u vervolgens de instructies voor de betaling kan opmaken.

Roep de volgende URL aan met een GET of POST:

https://transaction.digiwallet.nl/bankwire/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
amount* Bedrag in eurocenten: Minimaal 84 , Maximaal 1000000 (€ 0,84 - € 10.000,00) 1000
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 elke betaling (van server naar server) door middel van een POST. Ook als niet het hele bedrag betaald is, krijgt u een terugmelding als er een betaling binnenkomt. Controleer hier of de betaling inderdaad afgerond is en verwerk de bestelling verder.
Als parameters worden meegestuurd:
  • trxid: bestelnummer
  • rtlo: shop ID (layoutcode)
  • amountdue: het verschuldigde bedrag in eurocenten
  • amountpaid: bedrag van de betaling in eurocenten
  • checksum: md5 van achter elkaar:
    trxidrtloamoutdueamountpaidsalt.
    Voorbeeld (salt is e381277):
    $checksum = md5($_POST["trxid"].$_POST["rtlo"].$_POST["amountdue"].$_POST["amountpaid"]."e381277");
Om te zekeren dat de status terugmelding van DigiWallet afkomt, dient u altijd de Check API . De output van de report URL zal niet zichtbaar zijn voor de klant. De klant wordt doorgestuurd naar de return URL.
https://www.myshop.nl /reportOrder
returnurl* Report URL: Als u een e-mailadres opgegeven heeft, zal de return URL gemaild worden na betaling. Met de return URL wordt het transactie nummer als parameter meegestuurd. Parameter: trxid
Voorbeeld: https://www.myshop.nl/thankYouPage?trxid=30626804185492
https://www.myshop.nl /thankYouPage
email E-mailadres van de klant. Indien ingevuld sturen we een bevestiging van de betaling per mail. test@example.com
salt* Salt: een willekeurige reeks getallen aan de hand waarvan de checksum berekend wordt die aan de report URL wordt meegegeven. Maximaal 32 tekens. e381277
customer_cname Naam van de klant. Mocht een binnengekomen bedrag niet thuisgebracht kunnen worden, helpt dit ons bij het uitzoeken Karel Raaijmakers
customer_cbank IBAN van de klant. Mocht een binnengekomen bedrag niet thuisgebracht kunnen worden, helpt dit ons bij het uitzoeken NL20RABO02873663091
customer_invoice Soms vermelden klanten per ongeluk uw factuurnummer in plaats van het verplichte, gegenereerde transactienummer.
Als we het originele factuurnummer weten, dan helpt dit ons bij het uitzoeken.
3011001
userip IP adres van de klant: is niet verplicht, maar is handig bij het vinden van problemen. 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"

* Notitie: De preprodtest parameter is niet beschikbaar voor BankWire.

U krijgt vervolgens een resultaat als volgt:

resultaatcode   transactie-nummer | rekeningnummer | IBAN | BIC | begunstigde | naam bank

Voorbeeld

000000 XXXX-XX-YY-ZZZZ|5940.74.231|NL44ABNA0594074231|ABNANL2A|St. Derdengelden DigiWallet|ABN Amro
Aan de hand van deze gegevens kunt u de betaalinstructie tonen of versturen aan uw klant voor de overboeking.
Zie verderop voor de betaalinstructie.


Als de test-modus aan staat krijgt u aan het eind een link terug naar het DigiWallet Test Paneel:

resultaatcode   transactie-nummer | rekeningnummer | IBAN | BIC | begunstigde | naam bank | test-panel-URL

Voorbeeld

000000 XXXX-XX-YY-ZZZZ|5940.74.231|NL44ABNA0594074231|ABNANL2A|St. Derdengelden DigiWallet|ABN Amro|https://pay.digiwallet.nl/test-transaction?transactionID=11315050&paymethod=BWI&hash=8a14c5c04f37311fgs3411e26cc4e0c0582427bad3f43f12c3af43710c74e1d31
In dit geval zult u een redirect moeten uitvoeren naar het Test Paneel.


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.

Controleer in geval van fouten of de parameters goed zijn overgenomen uit de documentatie. Als dit het geval lijkt te zijn, neem dan contact op met DigiWallet. Vermeldt de aanroep en de foutmelding.

Betaalinstructie Oproep tot actie


Met de gegevens die u uit de Start API hebt gekregen kunt u nu de betaalinstructie samenstellen.

Voorbeeld:


Bedankt voor uw bestelling in onze webwinkel!

U ontvangt uw bestelling zodra we de betaling per bank ontvangen hebben.
Would you be so friendly to transfer the total amount of € 12,34 to the bankaccount NL44ABNA0594074231 in name of St. Derdengelden DigiWallet* ?

Vermeld daarbij als betaalkenmerk XXXX-XX-YY-ZZZZ, zodat de betaling automatisch verwerkt kan worden.
Zodra dit gebeurd is ontvangt u een mail op test@example.com ter bevestiging.

Mocht het nodig zijn voor betalingen vanuit het buitenland, dan is de BIC code van de bank ABNANL2A en de naam van de bank is 'ABN AMRO Bank'. Zorg ervoor dat u kiest voor kosten in het buitenland voor eigen rekening (optie: OUR), anders zal het bedrag wat binnenkomt te laag zijn.

*De betalingen voor onze webwinkel worden verwerkt door TargetMedia. TargetMedia is gecertificeerd als Collecting Payment Service Provider door Currence. Dat houdt in dat zij aan strenge eisen dient te voldoen als het gaat om de veiligheid van de betalingen voor u als klant en ons als webwinkel.


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/bankwire/check

Met de volgende parameters (* = verplicht):

Variabele Toelichting Voorbeeld
rtlo* Shop ID (layoutcode) 93393
trxid* transactienummer 30626804185492
checksum* Checksum: De checksum is nodig om zeker te weten dat het verzoek van u afkomt. De checksum wordt berekend middels: $checksum = md5($trxid.$rtlo.'salt'); Zie ook het kopje reporturl hierboven. Let wel, 'amount' maakt in dit geval geen onderdeel uit van de checksum berekening. 1d875cfd325e4...
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   verschuldigd bedrag | betaald bedrag


Bijvoorbeeld als het bedrag € 7,50 was en er € 7,95 betaald is:

000000 OK|750|795

Controleer zelf altijd of het hele bedrag betaald is!
Een tweede deelbetaling op hetzelfde transactienummer is niet mogelijk.

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_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.

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, try again later Transactie is nog niet afgerond, probeer het later opnieuw
TP0013 Transaction was cancelled Transactie is geannuleerd
TP0012 Transaction not finished and expired Transactie is verlopen (max. 10 minuten)
TP0011 Transaction failed De transactie kon niet verwerkt worden
TP0014 Already redeemed at datetime Reeds ingewisseld



Beschikbaar in plugins

This paymethod is supported in the following plugins: