Salta al contenuto principale
Versione: 2.x

Authorize.net Tap to Pay

Authorize.net Tap to Pay takes the card in Authorize.net's own phone app, the Authorize.net 2.0 app. You type the same amount into the app; the till doesn't send it to the phone. Your store finds the payment in Authorize.net and records it on the order.

This is separate from the WCPOS app's own Tap to Pay, which uses Stripe Terminal. Setting this gateway up is under Set up Authorize.net Tap to Pay.

Pro Feature

Authorize.net Tap to Pay needs WCPOS Pro 2.0 or later.

Beta: a real tap is not tested yet

Version 0.1.0 is a beta. It was tested against Authorize.net's sandbox, with a card-present sale made through Authorize.net's API standing in for the tap: the sale, the match, a void, and a refund after settlement.

A real tap in the Authorize.net app has not been tested yet. Readers paired with the Authorize.net app have not been tested. Try it with a small amount and refund it before relying on it. Report problems with the order number, the time of the sale and a screenshot.

Take a payment​

Open the register first

With Open and close the register switched on, the till won't record a payment while the register is closed, and a card you've already taken would have to be refunded. See Registers for the setting.

Press Checkout. Authorize.net Tap to Pay is a tile on the Payments tab.

  1. Tap the Authorize.net Tap to Pay tile. Above the keypad the till shows Terminal: Authorize.net app (the Reader name).
  2. Press Send … to Authorize.net Tap to Pay. The till shows Waiting for the customer on the terminal, with the steps Sent, On terminal, Approved and Captured.
  3. In the Authorize.net app on your phone, take exactly the same amount. Don't add a tip in the app. See Tips.
  4. The customer taps their card on the phone.
  5. When your store finds the payment, the till records it on the order, and shows Paid in full once nothing is left to pay.

While the till waits, your store keeps checking Authorize.net's list of payments that haven't settled yet. With Auto-match on, the payment completes by itself when exactly one Authorize.net payment of that amount has arrived, counting from 30 seconds before you pressed Send. Before recording it, your store checks it with Authorize.net, including the amount and currency. A transaction is recorded on one payment only, ever.

While nothing matches yet, the extension also sends the till the line Take USD … in the Authorize.net app. This completes by itself when the payment arrives. Whether the till shows this line hasn't been tested yet.

A declined card fails the payment. The till shows Payment failed: … with Try again and Choose another way. See On a Card Reader.

On the checkout's Legacy tab, Authorize.net Tap to Pay shows a Terminal picker with Send to terminal, Cancel and Try again, recorded like a payment from the tender pane.

More than one payment could be yours​

The payment doesn't complete by itself when more than one Authorize.net payment of that amount could be yours, when Auto-match is off, or when the only match arrived more than 30 seconds before you pressed Send. The extension then sends the till a list to pick from, for example 2 Authorize.net payments of USD … could be this one. Pick the one you just took., with up to 6 payments of that amount from the 15 minutes before you pressed Send.

Whether the till shows this list hasn't been tested yet. Leave Auto-match on. If the till keeps waiting after the customer has paid, press Cancel on terminal (next section).

Cancel a payment​

Press Cancel on terminal. Your store checks Authorize.net once more. If exactly one new payment of that amount has arrived, it is recorded and the payment completes instead. Otherwise the payment is cancelled. Cancelling in WCPOS stops nothing in the Authorize.net app.

avviso

A payment the till didn't record stays in Authorize.net: this happens when the customer taps after you cancelled, or when more than one payment matched. Check the Authorize.net Merchant Interface before you take the card again, and refund an unrecorded payment there.

If a payment goes wrong​

The card was declined in the app
  • A decline fails the waiting payment. Start a new WCPOS payment before the customer taps again.
  • A decline for the same amount from another register can also fail a payment that is still waiting with no approved match.
Amount mismatch
  • The payment in Authorize.net has a different amount or currency from the till, for example a tip added in the app. The payment fails and an order note is added.
  • The money was taken: refund that transaction in the Authorize.net Merchant Interface.
The till keeps waiting after the customer paid
  • Check the amount matches exactly, the app is signed in to the same Authorize.net account and the same environment as Environment, and Auto-match is on.
  • Then press Cancel on terminal. See also the 50-transaction limit.
Turn on the Transaction Details API in the Authorize.net Merchant Interface (Account → Settings → Transaction Details API).
  • Turn it on there, then try again.
The Authorize.net Tap to Pay tile is greyed out or missing
  • See When a tile can't be used. A manager checks both credentials are saved and the gateway is switched on in WP Admin > POS > Settings > Checkout.
A payment is stuck, or the till says the provider hasn't answered

Refund an Authorize.net payment​

  1. In the POS, open the order's refund. See Refunds.
  2. Choose Refund to Authorize.net Tap to Pay and press Process Refund.

A refund in WP Admin with WooCommerce's Refund … via Authorize.net Tap to Pay button works the same way. Before Authorize.net settles the payment (usually overnight), only a full refund is possible, and it voids the payment. After it settles, refund all of it or part of it back to the card.

A partial refund before settlement shows: Authorize.net settles this payment overnight. Refund the full amount to void it now, or refund part of it after it settles. An identical refund sent in the last 8 hours is refused: An identical refund was sent in the last 8 hours. Check the Authorize.net Merchant Interface before trying again.

Other refund messages
  • This Authorize.net payment was already voided. — the full payment was voided before settlement.
  • Authorize.net did not confirm the refund. Check the Authorize.net Merchant Interface before trying again. — check there before another attempt.
  • Authorize.net cannot refund this payment now. Check the Authorize.net Merchant Interface. — check the payment there.
  • This payment was taken in the other Authorize.net environment. — switch Environment back, or refund it in the Merchant Interface.
  • This payment has no Authorize.net transaction to refund. — there is no Authorize.net transaction for this payment.
  • The refund amount must be more than zero. — enter an amount above zero.

Set up Authorize.net Tap to Pay​

A manager sets the gateway up once in WP Admin and signs the phone in to the Authorize.net app.

Before you set up: what you need

Requirements​

Processor: Your Authorize.net merchant account must be on the TSYS processor, with Tap to Pay switched on by Authorize.net. Check this with Authorize.net before you buy phones
Authorize.net Account: A US merchant account, its API Login ID and Transaction Key, and the Transaction Details API switched on
Phone: As Authorize.net states it: Tap to Pay on iPhone needs an iPhone XS or newer on iOS 18 or later; Tap to Pay on Android needs Android 15 on a phone that is Tap to Pay Ready. US only. Sign in to the Authorize.net 2.0 app with a user of the same Authorize.net account
Connections: The till needs a connection: your store checks Authorize.net for the payment. There is one reader, named by the Reader name setting (default Authorize.net app), and nothing to pair
WCPOS: WCPOS Pro 2.0 or later
Server: WooCommerce 7.0+, PHP 7.4+
Currency: The account takes one currency, and the Authorize.net 2.0 app takes USD only
Every setting on the gateway's page

Open Authorize.net Tap to Pay at WP Admin > WooCommerce > Settings > Payments.

SettingWhat it does
TitlePayment method title shown in the POS. Default Authorize.net Tap to Pay.
EnvironmentSandbox (default) or Production. Sandbox uses apitest.authorize.net and a sandbox account. Production takes real money.
API Login IDFrom the Authorize.net Merchant Interface: Account → Settings → API Credentials & Keys.
Transaction KeyStored on the server only and never shown again.
Auto-matchComplete the payment by itself when exactly one Authorize.net transaction fits. On by default.
Reader nameThe name the POS shows for the phone app. Default Authorize.net app.
Support bundleThe Download support bundle button: a file to share with WCPOS support. It covers every POS payment provider on the site; secrets and card numbers are removed.

After saving, each credential field shows only its last 4 characters: Saved value: ••••…. Leave blank to keep it. Leave a field blank to keep the saved value. A credential with control characters is refused with Authorize.net credentials cannot contain control characters.

There is no Enabled checkbox on this page. The only switch is WP Admin > POS > Settings > Checkout. The gateway is never offered on the shop's checkout.

Six steps: install, copy credentials, turn on the Transaction Details API, enter credentials, set up the phone, switch it on in WCPOS
1

Install the extension

In WP Admin > POS > Settings > Extensions, find Authorize.net Tap to Pay for WooCommerce (beta) and click Install. WCPOS installs and activates it in one go, and turns on Auto-update. See Extensions.

Auto-update is on for this beta, so new beta versions install by themselves. To update by hand instead, turn Auto-update off on the extension's card in Extensions. See Auto-updates.

Install from a downloaded zip instead

Download authorize-net-terminal-for-woocommerce.zip from the GitHub releases page and upload it via Plugins > Add Plugin, then Upload Plugin. The GitHub "Source code" zip won't install.

2

Copy the API credentials

In the Authorize.net Merchant Interface, open Account → Settings → API Credentials & Keys for the API Login ID and Transaction Key. Use a sandbox account's credentials for Sandbox, your live account's for Production.

3

Turn on the Transaction Details API

Open Account → Settings → Transaction Details API and turn it on. Without it the till shows the Transaction Details API message (E00011).

4

Enter the credentials

In WP Admin > WooCommerce > Settings > Payments, open Authorize.net Tap to Pay, choose Environment, enter API Login ID and Transaction Key, leave Auto-match on, and click Save changes.

5

Set up the phone

Install the Authorize.net app and sign in with a user of the same Authorize.net account.

6

Switch it on in WCPOS

In WP Admin > POS > Settings > Checkout, toggle Authorize.net Tap to Pay Enabled. The tile appears at the till on the next page load.

nota

This is the only switch. See Checkout Settings.

Sandbox and production​

Sandbox is the default and uses apitest.authorize.net. Production uses api.authorize.net and takes real money. The setting is Production only when you choose it. Credentials belong to one environment: enter the ones for the environment you chose.

Switching Environment while a payment is waiting fails that payment. Switch only when no till is taking an Authorize.net payment.

A payment taken in one environment can't be refunded after you switch: This payment was taken in the other Authorize.net environment. Authorize.net doesn't document whether its app signs in to a sandbox account. To try a real tap, use Production with a small amount and refund it in full the same day; before settlement, a full refund voids the payment.

Logs​

When you ask for help, send the order number and the relevant log lines.

Find logs for support

Find logs in WooCommerce > Status > Logs, under source authorize-net-terminal-for-woocommerce. Use Download support bundle on the gateway's settings page for a file to share with WCPOS support. Don't share full credentials or card data.

Scope & Limitations​

  • A beta: a real tap in the Authorize.net app hasn't been tested
  • Tap to Pay in the Authorize.net app only: no physical card terminals; readers paired with the Authorize.net app are untested
  • The amount is typed into the app; the till doesn't send it
  • US Authorize.net accounts on the TSYS processor, with Tap to Pay switched on by Authorize.net; one currency; the Authorize.net 2.0 app takes USD only
  • No tips in the app: the amount must match exactly
  • No webhooks: your store checks Authorize.net for the payment
  • No manual capture, and no partial payment on the phone
  • A payment Authorize.net holds for review isn't recorded
  • Version 0.1.0 reads only the 50 newest unsettled transactions on the account, so a tap is missed when 50 or more other Authorize.net transactions on the account (any register, your online checkout included) land after it before the till finds it
  • Your WordPress server's clock must be right to within 30 seconds: auto-match compares it with the time Authorize.net gives the payment
  • Two registers taking the same amount at the same moment can each record the other's payment
  • The pick list for several matching payments hasn't been tested at the till
  • Switching Environment while a payment is waiting fails that payment

If setup goes wrong​

Common Issues​

Enter the Authorize.net API Login ID and Transaction Key first.
  • Save both credentials on the gateway's page.
Authorize.net credentials cannot contain control characters.
  • Paste the value again without the extra characters copied with it.
WCPOS Pro 2.0 notice
  • Authorize.net Tap to Pay for WooCommerce POS needs WooCommerce POS Pro 2.0.0 or newer. Install or update WCPOS Pro. Without it the extension adds nothing to the POS.

Getting Help​

  • Include the order number, the time of the sale, a screenshot and the relevant log lines with your support request
  • Report problems on GitHub issues
  • Contact Authorize.net support for the account, the app and Tap to Pay