top of page
benamchin

Credit Cards With Adyen

One of the coolest features that Retail and Commerce brings to the table is the ability to take credit card payments through all of the different types of channels in D365. From Card-Not-Present transactions through call center, Card-Present transactions through POS, or website sales, credit cards are an important function that retailers will need to take advantage of to stay present.


With all of the different ISV's for credit cards, Microsoft chose Adyen to be their partner and create a built-in connector in D365. This is huge because it will save you time and money having the support of Microsoft in the case that there are any issues. It's a huge time saver because the entire MSFT support team is behind you as well as the Adyen support staff. That alone makes it worth using Adyen in my opinion.


To set up Adyen for the different channels, follow these instructions. Each can be independent of each other, or if you are working in Omni-channel retail and want functionality like Buy Online Pickup In Store (BOPIS), you can set up all three and get the full credit card feature set from top to bottom.


Prerequisites


There are some prerequisite setups that need to be done to have call center as well as the other channels work. I'll cover those first.


Card types


The system needs to know which type of card you accept. Most retailers don't have restrictions on card types anymore, but it's still possible that we don't accept all major credit cards. Either way, these need to be configured.


To do so, navigate to Retail and Commerce > Channel Setup > Payment methods > Card types.


Here you'll configure the different card types that you take such as Master Card, American Express, etc. You can set these up any way that you'd like, but my preference is to use abbreviations: AMEX, MC, VISA, DISC (or DC), etc. Later on when using these in call center you'll need to select the card type and having 01 or 02 as Visa doesn't mean much to the workers using the system. It should looks something like this when all is said and done:



Next we'll need to tell the system what card types are associated to card numbers.


Card Numbers


Credit card companies all have standard card number formats that they use to start their card numbers. We need to set up these card numbers so the system recognizes which type of card we're using when we swipe them at the register or take payment online. To set these up navigate to Retail and Commerce > Channel setup > Payment methods > Card numbers.


There are a standard set of card numbers in the US that I know of. These are your building blocks. Note that this doesn't include debit cards (which have their own set of card numbers) or gift cards (which can be company specific):




This is, in my opinion, the easiest way to set these up. We tell the system how many characters to look at to identify a card (1 or 2 on the far right), then we tell it which 2 first characters to identify with each credit card type that we set up earlier.


Payment methods


The last prerequisite we need to set up is the payment method that we'll accept for the cards. Some companies will do this differently depending on how they want to see payments in the transactions, but I like to take the simple route. I'll create a single payment method for all credit card numbers and associate the cards to them. To get to the payment methods, navigate to Retail and Commerce > Channel setup > Payment methods > Payment methods.


Here, set up a payment method with a number (MSFT likes to use 4 for credit cards, but it doesn't matter) and name it something like Credit card, CC, Card, etc. for ease of identification. Select the Card payment function which will open up other functionality that will be explained shortly:



Now we can begin setting up our different channels with credit cards to get them working appropriately, starting with Call Center.


Adyen Configuration


To use Adyen, it goes without saying that you need an Adyen test merchant account. Signing up for one is very simple, just go to their website and sign up. A link can be found here. For the full functionality, you'll want to sign up for both an Ecom and a POS (card-not-present and card-present) merchant.


After you've signed up, you'll need to create a new API. To do this, go to the Developers > API credentials and create a new API credential:




After you've got a new API credential, you'll need a few things from it:

  • You'll need to generate and save a new API key. Save this somewhere safe for later use.

  • Scroll down to the client settings section. Copy and paste the URL from your D365 environment into the allowed origins and generate a new origin key. Save this origin key (also called a client key) for later use as well.



The final thing you'll need to do with your Adyen account is change some of the API settings. Do this by going to the Developer tab again and clicking additional data.


Check the "toggle all fields" to select them all, then scroll down to the banking section and uncheck "Bank detail additional data," and under the Risk section uncheck "Fraud result" as these are not used in Dynamics 365 functionality.


Just remember to keep hitting save throughout the process!


Activating Your Account


After you've got everything set up and you've got API credentials created (web service users) for each of your merchant accounts, you'll need to raise a support ticket with Adyen so that they can activate your account. They're usually pretty good about this and only takes a few days to get things working fully. Then you're ready to start working through getting D365 set up.


Call Center


Call Center Setup

Setting up call center credit cards is quite simple once you have all of the above set up. There's a small amount of setup on the call center channel itself first.


Navigate to all call centers through the Retail and Commerce module. In the Setup tab in the ribbon, select Payment methods.


Here you'll specify the payment method that you created in the prerequisites, and the GL account that it should go to (or the bank account, either way). For Card payment functions you'll need to click on Electronic payment types and select all of the card types that were also created in the prerequisite section.


Payment Service


The import piece that needs to be set up is a payment service. This is what links the D365 instance to the Adyen payment gateway to process through their processor. Create a new payment service and name it something appropriate (I've almost always named mine "Adyen", but to each their own). Fill it in as seen below:


Setup tab

  • Select the Dynamics 365 Payment Connector for Adyen option

Payment service account tab

  • Let assembly name and service account ID autopopulate

  • Version = V002

  • Gateway environment = Test

  • Optional domain = [Blank]

  • Merchant Account ID = The ECOM merchant account that was created when signing up for Adyen

  • Terminal architecture = Cloud

  • All 3 locals = [Blank], Local cryptor can stay at 1

  • Cloud API Key = Paste the API Key generated when setting up the API credentials in the previous section

  • Everything else can stay the same, except for the Origin key. Paste the client key that you generated with the API credential here


After that, you'll need to go into Electronic payment types and select a payment journal name that each payment type will post captures with. You can also select the level of information captured at each transaction per card here (as noted as Level 1 - Level 3).


Once you're done with all that, hit the checkbox in the Setup tab for "Default processor for new credit cards" and everything will validate. If you've done everything right you'll see the lovely blue infolog that says validated, and you're good to go!


E-commerce


D365 Setup


The E-commerce setups are the same as the call center setup, just in a different place in the system. To get everything set up, navigate to the online stores form in the Retail and Commerce module.


In the online store that you want to configure with credit cards, go to the setup tab in the ribbon and again select payment methods.



Set up your card payment method that you set up in the beginning, and again choose the card types in the Electronic payment setup after choosing your GL account/bank account as the posting account for payments with credit card.


Payment service


The "payment service" that will be used on the web is found directly on the online store setup in the payment accounts section. Fill that in exactly the same way as you filled in the payment service for Call Center and you're in good shape.


Site Builder


When you're building your website in site builder, make sure that you have the "Payment" module in your checkout page. This is what connects the payment account on the online store to the website itself so that you can actually accept credit cards as payment.


I would also recommend changing the name of the module from Payment to something like "Credit card payment" in case you want to use some of the other payment types that Microsoft offers (as of writing this blog, Paypal and Google Pay are available as separate connectors that I'll cover in other blog posts).


Modern Point of Sale


In this blog I'm only going to cover mPOS instead of CPOS/Store Commerce since those require the setup of a hardware station and I don't want this blog to be longer than it has to be.


To set up mPOS with credit cards we need a few things in D365. Let's walk through each part.


Adyen-Side Configurations


First and foremost you'll need to make sure you have a payment device from Adyen. Other devices will not work as they do not have Adyen code injected into them.


In the Adyen portal you can order terminals from them directly. Most test accounts will come with 2 free terminals and test cards. Make sure you order the one you plan on using for your implementation. Setup is the same regardless, but in terms of real-world testing it's important to not get the best if the company plans on using a more basic device.


In the portal, select your parent merchant account and on the left hand side select Point of Sale > Terminals. A list of different setups will be presented to you. Select Integration and scroll down until you see the section where you can specify key information. Specify something you'll remember for later in the process in the three fields, write them down, then save changes.





You'll also need to ensure that the payment API is enabled here:





Just like you did with the call center/Ecomm merchant account, navigate to your POS merchant account and on the left hand side select API credentials and create a new API credential. Copy and save the API key that given.


In D365, navigate to channel profiles and I'm your CSU profile copy the Retail channel URL up until .com/.


Back in API credentials, scroll down to the client key section. Paste and add the channel profile URL and generate a new client key. Save that for later.


POIID


Something you're going to need also for the D365 side configuration is called the POIID. This is a concatenation of the device type and its serial number and can be found in the Adyen portal under Point of Sale > Terminals.





Terminal Setup - Adyen


The first thing we need to do is set up the terminal itself. Once the terminal is turned on, connect to an internet connection any way you want (wired or wifi). After that, there should be a large button that says "board terminal." Press that button and let it run.


The first thing that I do is press 5 then the green button and write down the IP address which you'll need for D365 setup.


D365 Hardware Profile


In the hardware profile that's associated to devices, you'll need to set up two sections: the EFT section and the PIN pad section. In the EFT section, add a new connector that is the Adyen connector, then fill out all of the same information as you did with call center and Ecommerce. Just remember to use the information from the POS merchant account instead of the ECOM merchant account.


The additional information you need to fill out are all of the "local" fields, like you can see below:



In the PIN pad section, everyone will fill it out the same. Select the Network style, then populate the device name as MicrosoftAdyenDeviceV001.




Now it's time to move onto the register setup.


Registers

Each register is going to be associated with a single POS device. This is based on the POIID and the IP address of the device.


Recall from earlier that we have the POIID from the device type and the serial number. The IP address you can get by going to the connections screen on your device. For me (M400 device), that's found be pressing 5, then the green button. The IP address will be on the black screen that appears.


On the register form, select the register you want to configure with Adyen. In the ribbon, you'll press "Configure IP address."



In the last section of the screen, which is the only section you need to fill out for Adyen, populate the IP address with the following format:


https://[IP Address]:8443/nexo/[POIID]


Make sure you don't capitalize or misspell anything on this page because it needs to be exact, and it is case sensitive. That also means make sure you copy and paste or type your POIID exactly as it's found in Adyen.


Once those two things are done, push a full 9999 from the channel database group to make sure all configurations are completely sent to the channel db. Once all jobs are applied correctly, you should be good to go.


POS Setup

On the POS itself, make sure you turn on your hardware station and are using the localhost hardware station associated with the hardware profile that has your credit card terminal (EFT and PIN pad) associated to it. Remember to do this in non-drawer mode first before starting a shift.


If you're having trouble with your device you'll know immediately when you add your first item. If you get an error when you add an item and on your device a line item doesn't appear, you'll need to deactivate and reactivate your register, turn on and select your hardware station, then try it again. That should refresh your cache and let your POS register connect to the terminal.


You'll know it's working as soon as you put an item on the lines. It should appear on your terminal with the price.


Summary

I know this seems like a lot. However, if you've ever experienced other credit card ISV implementation you'll know that this is NOTHING compared to some of the big names out there. There is also a huge benefit to not having to worry about having a separate processor and payment gateway, which means you have multiple groups to work with. Adyen is both, so it makes connection and operation as well as troubleshooting a lot easier.


I hope this helps some of you get the basics set up with your credit card processing. Remember that you'll need all three of these to do something like a BOPIS process, where you take the credit card online and the auth follows the transaction through to the POS.


As always, if there's something you'd like me to blog on around Retail and Commerce, please send a comment to me and I'll be sure to cover it!







Comments


bottom of page