Mar 30, 2025

Adyen Payment Connector in D365 Commerce

 

Adyen Payment Connector in D365 Commerce 

(Things I Had to Learn the Hard Way)

📌 This post is Part 1 of my upcoming blog series: “What I Learned During a D365 Commerce Implementation.”

The goal of the series is to share real-world, implementation-proven tips from the field — not theory, but lessons from things that broke, surprised me, or forced last-minute fixes. Future parts of the series will include credit card settlement timing, Commerce database restore scenarios, and Entra ID configurations after backup.

Let me tell you how this went down.

We were close to go-live.
The Adyen UAT setup was done. Everything looked fine — payments working, test transactions clearing, and the merchant account was active.

Then the production configuration hit me like a freight train.
Things I hadn’t accounted for.
Steps I didn’t realize were different.
And issues I didn’t know even existed — until they showed up on mobile browsers.

This blog isn’t a manual. It’s not a polished guide.
It’s a battle-tested checklist of things I had to troubleshoot, mostly in fire-fighting mode, right before go-live. And hopefully, if you’re setting up Adyen with Dynamics 365 Commerce, this will save you the scramble.


1. Merchant Account Name is Case-Sensitive (Yes, It Matters)

The first issue?
A minor case mismatch between the merchant account name in Dynamics and what was set up in Adyen’s portal. That one letter difference broke the connection.

So make sure:

  • The exact casing of the merchant account matches across Dynamics, the Adyen portal, and connector configs.
  • Don’t assume "testmerchant" is the same as "TestMerchant" — because it isn’t.

2. UAT vs Production – It’s Not Copy-Paste

In UAT, you can:

  • Skip the optional domain field
  • Proceed without enabling PCI roles
  • Skip compliance steps like SAQ-A
  • Still test everything using Cloud terminals and API keys

But in Production, here’s what I walked into:

  • That “optional” domain? Mandatory.
  • SAQ-A? Must be submitted and approved before anything moves
  • PCI roles? Adyen won’t enable the API PCI role until they see that SAQ-A
  • If anything’s missing, payments will simply fail silently

Also, make sure to configure the origin URL of your ecommerce website properly in the Adyen dashboard — this origin must match what is tied to your store’s distribution group in Dynamics.

And a pro tip: start preparing for your Adyen live merchant account at least 2 weeks before go-live. This gives you enough time to:

  • Submit the SAQ-A
  • Wait for review and approval
  • Ensure the PCI API role is enabled
  • Conduct live payment dry runs

Lesson: UAT success doesn’t mean production will behave the same.

 3. SAQ-A Is a Real Step, Not Just Compliance Fluff

After we submitted the SAQ-A (Self Assessment Questionnaire – Type A), we got a response like:

"Your SAQ-A is now valid until xxxxx . D365 is now referenced in 2F. We’ve enabled the API PCI role for your merchant account."

Until that happened, none of the real transaction flows would fully work in production.

So yes, it’s just a document. But it unlocks critical configuration.

Start it early. And confirm it’s acknowledged.

4. iOS Safari + Apple Pay = Issue with Adyen iFrame

On iOS devices, the Adyen iFrame simply refused to load on Safari.
No error in Dynamics. No visible issue on desktop.
Just — nothing happening on mobile.



Turns out:

If Apple Pay is enabled on the same merchant account used for credit card payments on the online channel, the Adyen JS SDK throws a silent exception. The iFrame can’t render.

This was confirmed by Microsoft support and is a known limitation.

Workaround:

  • Use separate merchant accounts for Apple Pay and standard card payments
  • Keep Apple Pay out of the iFrame flow
  • Configure Apple Pay on channels that support it directly (e.g., mobile wallet or native apps)

If your online store uses the standard Adyen iFrame — and you’ve enabled Apple Pay on the same account — you’ll almost certainly hit this.

 

🔹 5. My Checklist Going Forward

✅ Item

UAT

Production

Case-sensitive merchant name

✔️

✔️

Optional domain

✔️ Required

SAQ-A Required

✔️ Mandatory

API PCI role (Adyen side)

✔️ Only after SAQ-A

Cloud terminal setup

✔️

✔️

iFrame + Apple Pay (same merchant)

Possible

❌ Not supported on iOS

Origin URL configuration

Optional

✔️ Must match store site


This blog isn’t written from a perfect implementation.
It’s written from the chaos of prepping for go-live, discovering what works, what breaks, and what no one tells you up front.

So if you’re setting up Adyen payments in D365 Commerce — especially the online store — give this a once-over.
Because sometimes the smoothest payment flow is only one checkbox (or casing typo) away from not working.

    

Disclaimer: All opinions and experiences shared are my own and not affiliated with Microsoft or Adyen. Validate settings and compliance requirements with your respective partners.


Mar 25, 2025

Ledger Setup and Automatic Interunit Postings in Dynamics 365

Ledger Setup and Automatic Interunit Postings in Dynamics 365

🛡️ Welcome to the AxmedJay Journey

In multi-departmental organizations, maintaining balance across financial dimensions like business units, departments, or cost centers is critical to ensure clean, auditable financial records.

Interunit Balancing in Dynamics 365 Finance is the mechanism that automatically creates accounting entries when transactions cross balancing financial dimensions — keeping your books tight and transparent.

In this guide, we’ll configure Ledger Structure with a balancing dimension (Department), set up automatic posting profiles, and post transactions that demonstrate interunit balancing in action. Let's make sure every part of your ledger stays in harmony.

Scenario: Why Interunit Balancing is Necessary

Imagine a company with multiple departments:

  • Department A purchases supplies on behalf of Department B.
  • The transaction affects two different department financial dimensions.

Without Interunit Balancing:

  • The general ledger would be out of balance at the department level.
  • Reporting and auditing would be inaccurate or fail altogether.

With Interunit Balancing:

  • The system automatically creates offsetting debit and credit entries.
  • Department-level balances remain accurate without manual intervention.

🔍 Key Point:
Interunit balancing automates complex ledger adjustments, saving finance teams from manual corrections and ensuring data integrity across reporting structures.

Process Walk Through,

1. Configure Ledger Structure with Department as Balancing Financial Dimension

·        Set Up Ledger Structure

  • Navigate to: General Ledger > Ledger Setup > Ledger.
  • Open the Ledger for the legal entity where you want to configure the structure.
  • Make sure that the Chart of Accounts and Currency are correctly assigned.

·        Add Business Unit as a balancing Financial Dimension

A screenshot of a computer

Description automatically generated




2. Set Up Posting Profile via Automatic Transactions

·        Configure Automatic Transactions

  • Navigate to: General Ledger > Posting Setup > Accounts for Automatic Transactions.

  • Click New to create a new posting profile.

·        Add Interunit Accounts

  • Add the Interunit Debit Asset Account (created earlier) for the debit side of the transaction.
  • Add the Interunit Credit Liability Account (created earlier) for the credit side of the transaction.
  • This ensures that intercompany and interunit transactions automatically post to these accounts for balancing.

A screenshot of a computer

Description automatically generated

3. Post the Journal for Interunit Balancing

·        Open the General Journal

  • Navigate to: General Ledger > Journal > General Journal.
  • Click New to create a new journal.

·        Create the Journal Entry.

A screenshot of a computer

Description automatically generated

  • In the journal, create a transaction Select the following
    • Date
    • Account Type to Ledger
    • Main Account
    • Description
    • Debit Amount
    • Offset Account

A screenshot of a computer

Description automatically generated

  • Ensure the InterUnit dimension is different for both the debit and credit entries.

A screenshot of a computer

Description automatically generated

·        Post the Journal

  • After entering the transaction, validate the journal to ensure all dimensions and amounts are correct.

A screenshot of a computer

Description automatically generated

4. Posting and Review

  • After posting the journal, you can review the interunit transaction by checking the General Ledger for the appropriate interunit accounts.
  • You can also generate a trial balance to ensure that the departments are balanced correctly using the interunit accounts.
  • Further you can go to the same journal and click on Voucher after posting.

A screenshot of a computer

Description automatically generated

Key Takeaways:

  • Setting Business Unit or Department as a balancing financial dimension ensures accurate intra-company accounting.
  • Accounts for Automatic Transactions simplify the setup of interunit postings.
  • Interunit balancing prevents manual errors and speeds up month-end closing processes.
  • Proper ledger setup and validation protect financial reporting integrity and audit compliance.
  • Always test different dimension combinations in journals to confirm interunit behavior.

🛡️ Thanks for Walking the Path with AxmedJay

Every transaction tells a story — and interunit balancing ensures it’s the right one.

By mastering ledger structures and automated balancing in D365, you create financial systems that are clean, trusted, and scalable.

Stay tuned for more insights that turn complex finance processes into powerful business drivers. Until next time — stay sharp, stay curious, and balance every line.