I see there is a payment provider for Dibs D2, but according to Nets this is being shut down, and is no longer available for us as a new customer with Nets.
The option for us with Nets is Dibs Easy. Anyone aware of a payment provider for Vendr using Dibs Easy? Or is there a plan to make one?
If you take a look at how the Dibs D2 provider was made, would it not be possible to create a Dibs Eeasy provider?
Vendr is build in UK, so the usage of Dibs is rather limited in that area, so I would be surprised if there are any plans. The Dibs D2 provider was also build by the community.
Unfortunately though he has hit a bit of a showstopper as Dibs Easy only supports a single returnUrl parameter which makes it impossible to know if the return to the site is due to a successful payment, or because of canceling out of the process. This means that whenever you return to the site, you won't know whether to show a success notice, or a canceled notice. Additionally, as payment finalization happens async via webhook, it's not like you can just check the status of the order either, as it may be a few seconds or even minutes (depending on the network) before we are notified of successful payments.
Bjarne has raised this with Nets, however they have told him this wouldn't be looked at till March next year.
If you are unable to use D2 then I'd strongly suggest you speak with nets and ask them to review this issue as a matter of urgency.
As soon as this issue can be resolved, we should be able to get a Dibs Easy provider out pretty quickly.
Yea, this is why it's urgent that they address this and why we suggest others keep pushing them to get the fix in place. We've had a few people asking, but right now their API isn't compatible. Continue/Cancel URL registration is a pretty common pattern in payment providers, including in their own D2 so not sure why it wasn't implemented for Dibs Easy.
Previous it had some issues, because both a successful payment and a cancelled payment via the "go back" link in the payment window, both triggered the payment.checkout.completed webhook event, so when getting the response from the webhook, we had no way to know if the payment was actually cancelled or successful.
I have been in touch with DIBS/Nets a lot regarding this, and suggested we could have both the existing payment.checkout.completed and payment.checkout.cancelled and also a payment.checkout.failed like other payment gateways have.
However at the time of this writing we still only have the payment.checkout.completed (unless they haven't documented new webhooks).
However they have changes the cancelled payment, so it no longer trigger the payment.checkout.completed (I would say this was a breaking change), but anyway this is already released).
Instead cancelled payments would return to the webshop with a status=cancel querystring, which should rely on Referrer-Policy.
I have also updated the payment provider to support the new PriceAdjustment entity in Vendr v1.4.0, so it should work with discounts, gift cards on custom discounts/fees, e.g. a deposit fee, but I haven't fully tested this.
I haven't heard of a specific cancel url, but they may refer to the Referrer-Policy header.
Payment gateways like e.g. Stripe, Reepay and Adyen has a configuration option in their admin tools to configurate, where the webhook event should POST the response to - the callback URL (ProcessCallback method).
Yes, I could try the cancelUrl property, but pretty hard to know about this as developer, when it hasn't been documented. It may be a hidden gem that we magically should know about :)
I agree. They need better documentation and also better support mail response times.
Its proberbly something they added later and forgot to document.
Did you know that the api also require the order items?
I did not know that, but was told by their support that its a requirement.
In my opinion that should be handled by the shop and not by the payment provider.
I will try with the cancelUrl and see if it has any effect.
Hopefully they will update the documentation, so developers know how to integrate with DIBS Easy.
It seems the focus has more been on the embedded checkout option, but not much on the hosted payment window.
Yes, you are right DIBS Easy require the order items to be set, which I already have configurated, but not all payment gateways require this, but for some acquirers like Klarna the do, e.g. in Adyen it isn't required, but if is if using Klarna: https://github.com/vendrcontrib/vendr-payment-provider-adyen
I just tried generating a payment link using cancelUrl and it actually seems to redirect to this, when clicking "go back" from payment window.
Need to test it further now.
Do you have any further knowledge about the webhook headers? It has been added to the documentation, but nothing about what is used for. The authorization property is already returned as a header in the webhook notification event.
I think they updatet the webhook documentation again. So i guess you have to make a webhook for each event you want to get a server to server call.
notifications - Used to get the status of a transaction (optional)
webhooks - List of webhooks the merchant wants to register for the payment. Maximum number of webhooks is 32.
eventName - Input the event you want to listen for
payment.created (When a payment is created)
payment.checkout.completed (When Checkout is completed)
payment.charge.failed (When a charge has failed)
payment.refund.failed (When a refund has not gone through)
payment.cancel.created (When a reservation has been canceled)
url - The callback is sent to this url on the merchant site. Must be https. Maximum length is 256 characters.
authorization - Authorization header of the callback sent to the merchant site will be set to this value. You may choose whatever key you want as long as it fits the format described in this section. Format:
* 8 to 64 characters
* "a-z," "A-Z", "0-9" and "-" (regex: [a-zA-Z0-9-])
headers - I guess you can set custom headers here, that they return to you. But i dont know.
One thing i just found out is that there aint no way to set an errorUrl atm, only cancelUrl and returnUrl. They said they are working on it (whatever that means)
The documentation looks pretty much the same as previous.
The cancelUrl is working yet not documented.
Only the headers on webhook events was added some time ago, but not documented furhter. I wonder what would happen if sending authorization headers since authorization property already is returned as header in the response.
The payment provider is already using the payment.checkout.completed webhook event.
Regarding capture, refund and cancel it is currently using the POST endpoints for these, but works well also if manage the actions from DIBS Easy portal, since the GET is checking payment status, but I guess it should work using the webhook events as well.
One of the major issues I also have with DIBS Easy is the lack of supported currencies, which may be a show stopper to some businesses, for example a webshop selling products in Denmark and United Kingdom and therefore use DKK and GBP.
Yes, it is the plan to ship it as a package, but it will most likely replace DIBS D2 payment provider, which will still work, but is legacy. I think it is not possible to new customers to signup on the D2 platform and hence the Easy platform is recommended.
I have tested the DIBS Easy implementation throughout with the basic features, which gift cards, discounts, custom price adjustments.
I tried with GBP currency (which isn't supported according to the documentation) and the payment request failed.
Yes, Nets bought DIBS payment service some years ago. However for some time they haven't had a consistent naming of the products. It was still branded a DIBS or DIBS by Nets.
In the working new documentation it is however Nets Easy, so it may make sense to add a new Vendr.PaymentProviders.Nets.
I asked Matt about this and he may has some time next week to test it and setup build task like it works with other payment providers, which end up on Our and NuGet.
Any payment provider for DIBS Easy?
Hi there.
First of all, loving Vendr, great package.
I see there is a payment provider for Dibs D2, but according to Nets this is being shut down, and is no longer available for us as a new customer with Nets.
The option for us with Nets is Dibs Easy. Anyone aware of a payment provider for Vendr using Dibs Easy? Or is there a plan to make one?
Hi Amar,
If you take a look at how the Dibs D2 provider was made, would it not be possible to create a Dibs Eeasy provider?
Vendr is build in UK, so the usage of Dibs is rather limited in that area, so I would be surprised if there are any plans. The Dibs D2 provider was also build by the community.
Hi Amar,
This is one currently being worked on by a community member, Bjarne https://github.com/bjarnef/vendr-payment-provider-dibs/tree/feature/dibs-easy
Unfortunately though he has hit a bit of a showstopper as Dibs Easy only supports a single returnUrl parameter which makes it impossible to know if the return to the site is due to a successful payment, or because of canceling out of the process. This means that whenever you return to the site, you won't know whether to show a success notice, or a canceled notice. Additionally, as payment finalization happens async via webhook, it's not like you can just check the status of the order either, as it may be a few seconds or even minutes (depending on the network) before we are notified of successful payments.
Bjarne has raised this with Nets, however they have told him this wouldn't be looked at till March next year.
If you are unable to use D2 then I'd strongly suggest you speak with nets and ask them to review this issue as a matter of urgency.
As soon as this issue can be resolved, we should be able to get a Dibs Easy provider out pretty quickly.
Matt
Hi Matt,
As pointed out, no new D2 accounts will be created, and Easy is the replacement :/
best, Søren
Yea, this is why it's urgent that they address this and why we suggest others keep pushing them to get the fix in place. We've had a few people asking, but right now their API isn't compatible. Continue/Cancel URL registration is a pretty common pattern in payment providers, including in their own D2 so not sure why it wasn't implemented for Dibs Easy.
Matt
Hi Matt.
Does the acceptet answer mean that its working now?
Hi Bo
Yes, it is working, but it might need some additional testing. You can follow the progress in the PR here: https://github.com/vendrhub/vendr-payment-provider-dibs/pull/12
Previous it had some issues, because both a successful payment and a cancelled payment via the "go back" link in the payment window, both triggered the
payment.checkout.completed
webhook event, so when getting the response from the webhook, we had no way to know if the payment was actually cancelled or successful.I have been in touch with DIBS/Nets a lot regarding this, and suggested we could have both the existing
payment.checkout.completed
andpayment.checkout.cancelled
and also apayment.checkout.failed
like other payment gateways have.However at the time of this writing we still only have the
payment.checkout.completed
(unless they haven't documented new webhooks).However they have changes the cancelled payment, so it no longer trigger the
payment.checkout.completed
(I would say this was a breaking change), but anyway this is already released).Instead cancelled payments would return to the webshop with a
status=cancel
querystring, which should rely onReferrer-Policy
.I got the following explaining from Nets here: https://github.com/vendrhub/vendr-payment-provider-dibs/pull/12#issuecomment-778838684
I have also updated the payment provider to support the new
PriceAdjustment
entity in Vendr v1.4.0, so it should work with discounts, gift cards on custom discounts/fees, e.g. a deposit fee, but I haven't fully tested this./Bjarne
Hi Bjarne.
Ive also been in touch with NETS with the same issue. We have some D2 we need to change to Easy.
I havent testet it yet, but i was told by NETS that they got a cancel and return url you can set. Would that help?
I haven't heard of a specific cancel url, but they may refer to the
Referrer-Policy
header.Payment gateways like e.g. Stripe, Reepay and Adyen has a configuration option in their admin tools to configurate, where the webhook event should POST the response to - the callback URL (ProcessCallback method).
Here is an example for Stripe: https://vendr.net/docs/payment-providers/stripe/1-1-0/stripe-checkout/getting-started/configuring-stripe/#webhook
DIBS Easy doesn't handle this same way, but the callback URL is sent as part of the payment request.
Unfortunately their documentation is lacking from recent updates and especially the documentation on the HostedPaymentWindow is limited.
/Bjarne
Hi Bjarne.
I looked into the mail i got from DIBS (now NETS). The cancelUrl can only be used in the hosted payment window (which make sense, i guess). It should be set the same place where you set the returnUrl. So that would be in the "checkout" object. They send me these 2 links https://tech.dibspayment.com/node4555edit/checkout-introduction and https://tech.dibspayment.com/easy/api/paymentapi
Can you use that for anything?
Hi Bo
Yes, I could try the
cancelUrl
property, but pretty hard to know about this as developer, when it hasn't been documented. It may be a hidden gem that we magically should know about :)Furthermore the webhook has been updated wiht
headers
(previous it only hadeventName
,url
andauthorization
), but yet nothing about the use of it and valid values. https://tech.dibspayment.com/easy/api/paymentapi#webhooksNow it has only been a year since I first raised the issue to Nets and told them a lot of times to update the documentation.
/Bjarne
Hi Bjarne.
I agree. They need better documentation and also better support mail response times.
Its proberbly something they added later and forgot to document.
Did you know that the api also require the order items? I did not know that, but was told by their support that its a requirement. In my opinion that should be handled by the shop and not by the payment provider.
Hi Bo
I will try with the
cancelUrl
and see if it has any effect. Hopefully they will update the documentation, so developers know how to integrate with DIBS Easy.It seems the focus has more been on the embedded checkout option, but not much on the hosted payment window.
Yes, you are right DIBS Easy require the order items to be set, which I already have configurated, but not all payment gateways require this, but for some acquirers like Klarna the do, e.g. in Adyen it isn't required, but if is if using Klarna: https://github.com/vendrcontrib/vendr-payment-provider-adyen
I just tried generating a payment link using
cancelUrl
and it actually seems to redirect to this, when clicking "go back" from payment window.Need to test it further now.
Do you have any further knowledge about the webhook headers? It has been added to the documentation, but nothing about what is used for. The
authorization
property is already returned as a header in the webhook notification event./Bjarne
Hi Bjarne.
I think they updatet the webhook documentation again. So i guess you have to make a webhook for each event you want to get a server to server call.
notifications - Used to get the status of a transaction (optional)
webhooks - List of webhooks the merchant wants to register for the payment. Maximum number of webhooks is 32.
eventName - Input the event you want to listen for
url - The callback is sent to this url on the merchant site. Must be https. Maximum length is 256 characters.
authorization - Authorization header of the callback sent to the merchant site will be set to this value. You may choose whatever key you want as long as it fits the format described in this section. Format: * 8 to 64 characters * "a-z," "A-Z", "0-9" and "-" (regex: [a-zA-Z0-9-])
headers - I guess you can set custom headers here, that they return to you. But i dont know.
One thing i just found out is that there aint no way to set an errorUrl atm, only cancelUrl and returnUrl. They said they are working on it (whatever that means)
The documentation looks pretty much the same as previous. The
cancelUrl
is working yet not documented.Only the
headers
on webhook events was added some time ago, but not documented furhter. I wonder what would happen if sendingauthorization
headers sinceauthorization
property already is returned as header in the response.The payment provider is already using the
payment.checkout.completed
webhook event.Regarding capture, refund and cancel it is currently using the
POST
endpoints for these, but works well also if manage the actions from DIBS Easy portal, since theGET
is checking payment status, but I guess it should work using the webhook events as well./Bjarne
One of the major issues I also have with DIBS Easy is the lack of supported currencies, which may be a show stopper to some businesses, for example a webshop selling products in Denmark and United Kingdom and therefore use DKK and GBP.
However DIBS Easy only support a few currencies: NOK, SEK, DKK & EUR as mentioned here: https://tech.dibspayment.com/easy/api/datastring-parameters
If trying to use GBP the payment request with simple fail.
Compared to DIBS D2 it supported more currencies - most important probably GBP and USD https://tech.dibspayment.com/D2/Toolbox/Currency_codes
It may not be important to all webshops, but definitely something to consider, when choosing a payment gateway.
/Bjarne
Hi Bjarne.
They still only accept these 4 currencies. I guess thats how it gonna be for now and must just be the limitation there is until they add more.
Is the package ready for use and is it on Nuget?
If its not ready we can maybe work on it, cause we soon need the provider for our new shop.
Hi Bo
Yes, it is the plan to ship it as a package, but it will most likely replace DIBS D2 payment provider, which will still work, but is legacy. I think it is not possible to new customers to signup on the D2 platform and hence the Easy platform is recommended.
I have tested the DIBS Easy implementation throughout with the basic features, which gift cards, discounts, custom price adjustments.
I tried with
GBP
currency (which isn't supported according to the documentation) and the payment request failed.Their support mentioned they has this new tech site https://developers.nets.eu/nets-easy/en-EU/docs/ (which I was told should have been launched back in March 2021). This does however document that
GBP
andUSD
are supported as well, so it may work now (I haven't tested that though) https://developers.nets.eu/nets-easy/en-EU/api/#currency-and-amount/Bjarne
Hi Bjarne.
Maybe it could be a new provider called Vendr.PaymentProviders.Nets?
DIBS changed name to NETS and going from a D2 to Easy account is a pain in the a.., because you need a completely new account with NETS.
Maybe GBP and USD works now, but https://tech.dibspayment.com/easy/api/datastring-parameters still only says NOK, SEK, DKK & EUR.
When do you think you ship the package?
Hi Bo
Yes, Nets bought DIBS payment service some years ago. However for some time they haven't had a consistent naming of the products. It was still branded a DIBS or DIBS by Nets.
In the working new documentation it is however Nets Easy, so it may make sense to add a new
Vendr.PaymentProviders.Nets
.The documentation here is the current / old one: https://tech.dibspayment.com/easy/api/datastring-parameters and isn't up-to-date.
They has a new one here:
https://developers.nets.eu/nets-easy/en-EU/docs/
https://developers.nets.eu/nets-easy/en-EU/api/
https://developers.nets.eu/nets-easy/en-EU/api/#currency-and-amount
I asked Matt about this and he may has some time next week to test it and setup build task like it works with other payment providers, which end up on Our and NuGet.
Yup, this is very much me dragging my feet on reviewing this one so my apologies.
If Nets are now calling it Nets Easy then I'm fine with it becoming
Vendr.PaymentProviders.Nets
.I will defo make a point of reviewing this next week.
Thanks again for the great work on this Bjarne 🙌
Hi Bo
The payment provider has now been released. https://vendr.net/docs/payment-providers/nets/1.0.0/nets-easy/
You can find it on Our: here https://our.umbraco.com/packages/website-utilities/vendr-contrib-payment-providers/
Or install it via NuGet: https://www.nuget.org/packages/Vendr.Contrib.PaymentProviders.Nets/
Let me know if you experience any issues and feel free to report them here: https://github.com/vendrcontrib/vendr-payment-provider-nets/issues
/Bjarne
Thank you Bjarne.
I will try to install and use it.
Just waiting for our new demo account :D
I will report any issues to https://github.com/vendrcontrib/vendr-payment-provider-nets/issues
Thanks again :)
Nets has finally documented cancelUrl property here: https://developers.nets.eu/nets-easy/en-EU/api/payment-v1/
It should also be updated with latest features, where the old documentation didn't contain information about all features.
is working on a reply...