Authorize.Net Integration Methods: Accept Hosted, Accept.js, API and Legacy SIM/AIM

An Authorize.Net integration is how your website sends payments to the gateway. There are four current ways to do it, from a no-code payment link to a full server connection. The big difference between them is who handles your customers' card numbers, because that decides how much PCI security work lands on you. Here's how to pick one, and what to do if your site still runs on SIM, DPM or AIM.

Colorful program code on a computer screen

The short answer

No website or no developer? Use Simple Checkout buttons, payment links or QR codes. Want Authorize.Net to host the card form? Use Accept Hosted, which Authorize.Net rates at the shortest PCI questionnaire, SAQ A. Want the form on your own page? Use Accept.js (SAQ A-EP, or SAQ A with its ready-made form). Building a custom system? Use the Authorize.Net API. Most online stores simply use their cart's plugin. SIM, DPM and AIM are deprecated: they still run, but they get no new features, and Authorize.Net says they're being phased out. No end-of-life date has been announced as of September 27, 2026.

Choosing an Authorize.Net Integration: Who Touches the Card Data?

Every business that takes cards has to meet PCI DSS, the card industry's security standard. Most small businesses prove it each year with a self-assessment questionnaire (SAQ). The less card data your own website and servers touch, the shorter that questionnaire is. So the first question isn't "which is easiest to code?" It's "where do card numbers get typed, and where do they go?"

Authorize.Net's developer documentation, checked September 27, 2026, assigns each of its Accept tools a questionnaire:

MethodWho handles card numbersPCI questionnaireEffortGood for
Simple CheckoutAuthorize.Net's hosted formHosted by Authorize.Net; ask your provider which SAQ appliesNone: set up in your accountA few products, services, donations, no website
Cart pluginDepends on the pluginDepends on which method the plugin usesLow: enter your keysShopify, WooCommerce and other stores
Accept HostedAuthorize.Net's hosted formSAQ ALow to moderateCustom sites that want the least PCI work
Accept.js UIAuthorize.Net's form, shown on your pageSAQ AModerateKeeping shoppers on your site
Accept.js (your own form)Your page, tokenized in the browserSAQ A-EPModerateFull control of the checkout design
API posting card data from your serverYour serverNot an Accept option; your servers are in PCI scope, the heaviest optionHighCustom platforms with a security team

Authorize.Net bases its SAQ ratings on a white paper by Coalfire, a PCI assessor. Your acquiring bank has the final say on which questionnaire you file, so confirm it with your merchant account provider. For what each questionnaire involves, see our PCI compliance basics.

No Code Needed: Authorize.Net Simple Checkout

Simple Checkout is still live. In Authorize.Net's words: "Create a Buy Now or Donate button, share a payment link, or generate a QR code. No website required." The customer lands on a secure payment form that Authorize.Net hosts.

  • What you can sell: products (physical or digital), services, and donations where the giver picks the amount.
  • Where it goes: a button on any web page, a link in an email or text, or a QR code on a flyer, invoice or counter sign.
  • Cost: Authorize.Net's feature page says there's no setup fee; standard transaction fees apply.

It suits a service business, a nonprofit, an event or a small catalog. It's not a store: there's no product catalog beyond your buttons, and no customer accounts. If you mainly bill people after a phone call, invoices and payment links from the Authorize.Net virtual terminal may fit better. For taking payments on a phone or at events, see mobile payment processing with Authorize.Net.

Accept Hosted: The Hosted Payment Form That Replaced SIM

With Accept Hosted, your site hands the shopper to a payment form that Authorize.Net hosts, either as a full page or as a pop-up or frame inside your page. The customer types the card number into Authorize.Net's form, not yours. Authorize.Net rates it SAQ A.

How it works, in short:

  1. Your server asks Authorize.Net for a form token, with the amount and order details.
  2. Your page opens the hosted form using that token.
  3. The customer pays, and Authorize.Net sends them back to your site.
  4. Your server confirms the result, ideally through a webhook (see below) rather than trusting the browser.

Accept Hosted is the official replacement for SIM (Server Integration Method), the older hosted form. If your site posts a form with x_fp_hash "fingerprint" fields to Authorize.Net, that's SIM, and Accept Hosted is where you move.

A related tool, Accept Customer, is a hosted form for customers to save and manage their own cards. It's also SAQ A and replaces the retired Hosted CIM forms. Saved cards are covered in our guide to recurring billing and saved cards (CIM).

Accept.js: Your Own Payment Form, Tokenized in the Browser

Accept.js is a JavaScript library that lets the card form sit on your own checkout page. When the customer clicks Pay, the script sends the card details straight from their browser to Authorize.Net. Authorize.Net sends back a one-time token, called a payment nonce. Your server receives only the nonce, never the card number, and uses it to run the charge.

  • The nonce is valid for 15 minutes, per the Accept.js documentation. Charge it promptly.
  • You need a Public Client Key, generated in the Merchant Interface, in addition to your API keys.
  • Two ways to use it: your own form (SAQ A-EP) or Accept.js UI, Authorize.Net's ready-made form embedded on your page (SAQ A).

SAQ A-EP is longer than SAQ A because your page controls the form: if someone tampered with it, they could skim cards before the script runs.

Accept.js replaces DPM (Direct Post Method). DPM posted the card form from your page straight to Authorize.Net, then sent the result back through Relay Response. Relay Response is now obsolete.

The Authorize.Net API: For Custom Builds

The Authorize.Net API is the server-side connection that everything else rests on. It handles charges, refunds, voids, subscriptions, saved customer profiles and reports, using XML or JSON. Here's what a business owner should know before hiring a developer:

  • Sandbox first. Developers build against a free sandbox account. It works like the live system but doesn't process real card payments.
  • API Login ID and Transaction Key. These two credentials connect your site or cart to your gateway account. You find them in the Merchant Interface under Account › Settings › Security Settings › API Credentials and Keys. Treat the Transaction Key like a password, and never email it.
  • Signature Key. A separate key used to check that responses and notifications really came from Authorize.Net (an HMAC-SHA512 hash). You need one before you can receive webhooks.
  • Webhooks. Authorize.Net posts a message to your server when something happens, such as a payment settling, a refund or a subscription payment failing. Authorize.Net says webhooks replace Silent Post.

If your developer uses the API to send card numbers from your own server, your servers handle card data and fall inside PCI scope. Pair the API with Accept.js or Accept Hosted to keep card numbers off your servers.

Locking the API to your server's IP addresses also helps. The Authorize.Net Fraud Detection Suite includes a filter that accepts API requests only from IP addresses you authorize, which helps block card-testing attacks.

Still on Authorize.Net AIM, SIM or DPM? What Deprecated Means

Many older carts and custom sites still connect through AIM (Advanced Integration Method), SIM (Server Integration Method) or DPM (Direct Post Method). All three are deprecated. Here's what that means, based on Authorize.Net's upgrade guide and support article 000001462, checked September 27, 2026:

  • They still work, for now. The upgrade guide calls them "supported but no longer actively maintained or enhanced." In practice that means fixes, but no new features.
  • They're on the way out. The support article says AIM, SIM, DPM, Relay Response and Silent Post "are now obsolete and in the process of being phased out."
  • No shutdown date yet. For SIM, the guide says Authorize.Net "will soon announce an end of life timeline." For DPM, the dates are "to be determined." When a date comes, you may have little time to react, so plan the move now.
  • AIM depends on which kind you have. "AIM XML" requests are now part of the current API and "can continue to be used as is." The older name-value version, which posts x_ fields to a URL ending in transact.dll, should be rebuilt with the current API.

Three changes have already happened, so an old integration may be half-broken already:

  • MD5 hash is gone. Authorize.Net removed the MD5 hash setting in 2019. Responses are now verified with transHashSHA2, a SHA-512 hash built with your Signature Key. If your code checks an MD5 hash, it's either failing or skipping the check.
  • TLS 1.2 is the floor. Authorize.Net connections use TLS 1.2. Support article 000001526 (last modified August 31, 2026) says TLS 1.3 works on Authorize.Net's portals only for now, with the API to follow. Very old servers that can't use TLS 1.2 can't connect.
  • Several methods are already end of life: Hosted CIM forms (returning an error since September 20, 2018), HTTP GET requests and WebLink. The SOAP API is deprecated.

Migration checklist

If you useMove toWhat changes
SIM (hosted form with fingerprint)Accept HostedRequest a form token from your server, then open the hosted form with it
DPM (your form posting to Authorize.Net)Accept.js or Accept.js UITokenize in the browser, charge the nonce from your server within 15 minutes
AIM name-value (transact.dll, x_ fields)Authorize.Net API (XML or JSON)Rebuild the transaction requests; ideally add Accept.js so card data leaves your server
AIM XMLNo move requiredAlready part of the current API; check the TLS and hash items below
MD5 hash checkSignature Key + transHashSHA2Generate a Signature Key; verify responses with HMAC-SHA512
Relay Response or Silent PostWebhooksRegister a webhook URL for the events you need
Hosted CIMAccept CustomerSwap the retired forms for the Accept Customer hosted form
SOAP APIAuthorize.Net APIRewrite the calls in XML or JSON

Not sure what your site uses? Ask whoever built it, or check your cart's payment settings. If a plugin asks only for an API Login ID and Transaction Key, look at its version and release notes. An old plugin is a common sign of an old connection method. If your cart is a hosted platform, see Authorize.Net shopping cart integrations for what each platform supports now.

Authorize.Net Apple Pay and Google Pay: It Depends on Your Processor

Authorize.Net supports Apple Pay and Google Pay, but only on certain processors. The processor is the company behind your merchant account that actually handles the card transaction. So whether wallets work for you depends on your merchant account, not just the gateway.

Here's what Authorize.Net's support articles list, checked September 27, 2026:

WalletProcessors Authorize.Net listsSource
Apple PayChase Paymentech, Global Payments, TSYS, FDC Nashville, NAB EPX, Worldpay (Vantiv Core). Elavon isn't listed.Support article 000001505
Google PayChase Paymentech, FDC Nashville, Global Payments, NAB EPX, TSYS, Worldpay (Vantiv Core), "Elavon New"Support article 000001555 (last modified June 18, 2026)
  • No extra gateway fee. Both articles say Authorize.Net doesn't charge a separate fee for Apple Pay or Google Pay.
  • Your integration has to support it too. Check that your cart plugin or checkout shows the wallet buttons. A custom build needs developer work, and Apple Pay on the web also needs your domain set up with Apple.
  • PayPal is separate. Authorize.Net notes that PayPal Express Checkout through the gateway is "not supported by some resellers."

These lists change, so don't build a checkout around a wallet until you've confirmed it. Ask your provider which wallets your account supports.

Getting Help With Your Authorize.Net Integration

Most businesses don't need a developer. If you sell through a hosted cart or WordPress, the integration is a plugin and two keys. If you don't have a website, Simple Checkout covers it. You need a developer when you're building a custom checkout or moving a custom site off SIM, DPM or name-value AIM.

START has worked with Authorize.Net for more than 20 years and has set up over 60,000 Authorize.Net accounts. We set up your merchant account and gateway together, so the account is ready when your site or developer connects. Tell us your platform and how it connects today, and we'll tell you what's involved on the account side.

For an overview of fees, features and setup, see our Authorize.Net payment gateway guide. Before launch, run through the chargeback prevention checklist.

General payments guidance, not legal or tax advice. Authorize.Net details come from Authorize.Net's own developer documentation and support articles as of September 27, 2026, and can change. PCI questionnaire levels are Authorize.Net's own ratings; your acquiring bank decides which one you file. Any third-party prices mentioned are those companies' own, not START's.

Authorize.Net Integration FAQ

Is Authorize.Net SIM still supported?

Yes, for now. SIM is deprecated: Authorize.Net calls it "supported but no longer actively maintained," and says it will announce an end-of-life timeline. No date had been announced as of September 27, 2026. Its replacement is Accept Hosted.

What replaced Authorize.Net AIM?

The Authorize.Net API. If you used "AIM XML," those requests are already part of the current API and can keep running as they are. If you post x_ fields to transact.dll, rebuild those requests with the current API in XML or JSON.

What's the difference between Accept Hosted and Accept.js?

With Accept Hosted, the customer types their card into a form Authorize.Net hosts (SAQ A). With Accept.js, the form sits on your page and the card is turned into a token in the browser (SAQ A-EP, or SAQ A if you use Authorize.Net's Accept.js UI form).

Does Authorize.Net support Apple Pay?

On some processors. As of September 27, 2026, Authorize.Net lists Chase Paymentech, Global Payments, TSYS, FDC Nashville, NAB EPX and Worldpay for Apple Pay. Elavon isn't on that list. Ask your provider whether your account supports it.

Do I need a developer to connect Authorize.Net?

Usually not. Simple Checkout needs no code, and most carts connect with a plugin and your API Login ID and Transaction Key. You'll want a developer for a custom checkout or to move an old SIM, DPM or AIM integration to a current method.

Connecting a website?

Tell us your website platform and how it connects today, and we'll tell you what setting up the gateway involves. START has been in payments for 20+ years and has set up more than 60,000 Authorize.Net accounts.

New to this topic? Start with our Authorize.Net Payment Gateway overview.

Authorize.Net Payment Guides

Keep reading