Shopify, Authorize.Net and NetSuite: what the Payment ID change breaks and how to fix it.

Shopify moved payment providers to a new app framework, and Authorize.Net built a new Shopify app. In that app, the Shopify Payment ID replaces the Authorize.Net transaction ID as the main reference. Authorize.Net says ERP and order apps must now use the Shopify Payment ID to capture. If NetSuite captures or refunds Shopify orders, check which ID your integration stores. An old reference is the usual reason these steps fail.

An operations manager checking an online order on a laptop beside shipping boxes.

The short answer

  • The reference changed. The Shopify Payment ID is now the main identifier. Authorize.Net says a dedicated transaction ID field is no longer available.
  • Captures from NetSuite need the new ID. Authorize.Net says third-party apps can no longer capture with the old transaction ID. This mainly hits ERP and order management apps.
  • The deadline has passed. Authorize.Net set 31 August 2025. After it, the old gateway was switched off for Shopify card payments.
  • Recurring billing moved. Authorize.Net's ARB (Automated Recurring Billing) does not work with the new Shopify app. Subscriptions need a compatible subscription app instead.
  • Test before you trust it. Shopify itself suggests testing ERP tools after the update.

How a Shopify order reaches NetSuite

  1. Customer pays at Shopify checkout
  2. Authorize.Net authorizes the card, tagged with the Shopify Payment ID
  3. An integration brings the order and its reference into NetSuite
  4. A NetSuite connector captures or refunds using that reference
  5. The processor settles to your Canadian bank account

Oracle says NetSuite Connector has no direct gateway integrations. It can import the gateway reference from a cart so you capture the payment yourself. That only works if NetSuite itself is connected to the gateway, through a connector or custom code. The sibling Authorize.Net page covers those options.

What changed, before and after

Legacy Authorize.Net gatewayNew Authorize.Net app
Main referenceAuthorize.Net transaction IDShopify Payment ID
Capture or fulfilment from an ERPUsed the transaction IDMust use the Shopify Payment ID
Where the ID shows in the Merchant InterfaceTransaction IDThe transaction's Description field
How an API finds the saleTransaction IDPayment ID in refId, or transRefId in a transaction details request
ARB recurring billingCompatibleNot compatible; ARB charges do not show in Shopify
Held-for-review ordersReviewed in ShopifyApproved or declined in the Merchant Interface; auto-rejected after 72 hours
Refunds on older salesThrough the legacy appLegacy sales still refund through the legacy app, up to six months after migrating

The Merchant Interface is Authorize.Net's own account website. refId and transRefId are fields in Authorize.Net's API. Authorize.Net raised the refId limit to 50 characters to hold the new ID.

Why NetSuite captures and refunds break

Your NetSuite order holds a payment reference copied from Shopify. A connector sends that reference to Authorize.Net when it captures or refunds. Before the change, that was the Authorize.Net transaction ID. Now Authorize.Net expects the Shopify Payment ID.

If the integration still maps the old field, the order may hold a blank or wrong value. The capture request then fails or cannot find the sale. Refunds that start in NetSuite can fail the same way.

How to check which ID your integration stores

  1. In Shopify admin, open a recent order. In the timeline, find "Payment was processed", then "Information from the gateway". Copy the Payment ID.
  2. Sign in to the Merchant Interface and find the same sale. The Payment ID appears in its Description field.
  3. Open the matching sales order or cash sale in NetSuite. Find the field your integration fills with the payment reference.
  4. Compare the values. If NetSuite holds the Shopify Payment ID, the reference is right. If it holds something else, or nothing, captures from NetSuite are at risk.

Shopify notes that only the payment ID is sent to your payment provider. You cannot match on Shopify's order number.

What to do

  • Update the integration. Ask whoever built it to pass the Shopify Payment ID as Authorize.Net describes, in refId, and to use transRefId when looking a sale up. Authorize.Net tells merchants to contact Shopify about integration updates.
  • Test in a sandbox. Use an Authorize.Net sandbox account. Shopify says the test mode on a live Authorize.Net account is not compatible with Shopify. Test an authorization, a capture from NetSuite, a void and a refund.
  • Watch partial refunds. Authorize.Net says a partial refund works only on a settled sale. On an unsettled sale, the app voids the full amount.
  • Capture inside the authorization window. Shopify says the window depends on your provider. After it ends, you might be unable to collect.
  • Plan subscriptions elsewhere. ARB no longer works with the new app. Oracle says NetSuite Connector does not split subscription orders either, so the store or a subscription app must send one order per billing period.

Where CleverPays fits

Shopify owns the checkout and the app framework. Authorize.Net builds and supports its Shopify app. Whoever built your NetSuite connection owns that code. Cloud 1001 supports its own connector, SuiteAuthConnect, and its README describes a separate Shopify workaround. The processor approves and settles payments. CleverPays does not make Shopify, NetSuite or any connector.

We can review your statement and show what you pay today. We can open the Authorize.Net account and the Canadian merchant account behind it, in CAD and USD, with American Express. If your custom connection still uses the old reference, our development team can scope a fix. We can then test a capture and a refund with you before you rely on it.

Sources

Product and company names on this page are trademarks of their respective owners. CleverPays is not affiliated with or endorsed by them.

Request a callback

Your name

Common questions

The most likely cause is the reference. Authorize.Net says captures must now use the Shopify Payment ID. If your integration sends the old transaction ID or a blank field, the capture can fail.

Selling on Shopify with NetSuite in Canada?

Send us a recent statement and tell us how orders move from Shopify to NetSuite. We will show you what you pay and where the payment reference needs checking.

Merchants on CleverPays

Rated 4.9 on Google

“We manage all our stores with this. It's elegant, and the CleverPays team offers great customer service in English and French.”

MonacoRetail

Accept all major payment methods
VisaMastercardInteracAmerican ExpressDiscoverUnionPayJCBDiners ClubApple PayGoogle Pay