Connecting with OAuth
Connecting to Authorize.Net is an OAuth process. It requires you to log into Authorize.Net, which then shares a security token with us. To complete this you must use the Authorize.Net login for the account owner — any other user login will not return correctly from Authorize.Net to finish the OAuth process.
TipDon't miss the section on this page about configuring webhooks.
-
When prompted, select Connect Authorize.Net to log in to your Authorize.Net account.

-
This opens Authorize.Net. Log in as the account owner. If you log in as a user with a different role profile, you will be taken to the Authorize.Net dashboard instead of being returned to the app.

-
You may be asked to verify your identity before continuing.

-
If requested, select Allow. This grants the connection permission to create transactions, view reporting, and manage customer profiles, then closes the popup.
TipIf this screen does not appear, or you are taken to the Authorize.Net dashboard, you are not logging in as the account owner. To check, navigate to Account → User Administration and find the user with the type Account Owner.

-
When you are returned to the app, the connection is tested and you are shown a green "Connected to Authorize.Net" message. If there is an error with the connection, use the Reconnect button — but take care to connect to the same account, otherwise saved payment methods and refunds will return an error message.

Connection options
Our integration with Authorize.Net offers several options:
- Enable PayPal: Enables PayPal via Authorize.Net. We strongly recommend against this — connect directly to PayPal via PayPal Commerce instead. Many PayPal features, capabilities, and debugging options are lost when transactions are routed through Authorize.Net rather than PayPal directly. This option is likely to be removed for new accounts at some point.
- Enable ACH: Enables ACH as a payment method. You must also enable this option on Authorize.Net. Note that Authorize.Net does not reflect ACH declines, which must be managed off-system (see the Authorize.Net ACH declines article).
- Require address (AVS): Requires the customer to enter their billing address.
- Require CVC: Forces customers to re-enter a card's CVC when using a saved card.
Webhooks (must read)
When configuring a connection to Authorize.Net, we attempt to configure a webhook endpoint on your Authorize.Net account. It requests notifications for the following events:
net.authorize.payment.fraud.approvednet.authorize.payment.fraud.declinednet.authorize.payment.authorization.creatednet.authorize.payment.authcapture.creatednet.authorize.payment.capture.creatednet.authorize.payment.refund.creatednet.authorize.payment.void.created
This supports the following use cases:
- Transactions held for review due to a merchant fraud rule. These show up as "In Progress" in Shuttle, in either an UNRESOLVED or PENDING status. Without webhooks, the merchant is responsible for manually marking these transactions as approved or declined in Shuttle as well as in Authorize.Net. With webhooks, the merchant only needs to approve the transaction in Authorize.Net and it is automatically synced to Shuttle.
- Gateway-instructed captures, voids, and refunds. If the merchant logs into Authorize.Net and manually captures an authorisation or refunds a payment, this would not otherwise show in Shuttle. With webhooks enabled, we automatically reflect these actions and pass them on to the source system.
To configure webhooks, the merchant must configure a Signature Key on Authorize.Net first, then update Shuttle with it. Authorize.Net does not allow Shuttle to do this on a merchant's behalf.
TipA "Webhooks not configured" warning does not stop you from processing payments, but transactions held for review will get "stuck".
To configure webhooks, follow the steps below.
-
Open the Account menu and the Settings page.

-
Select API Credentials & Keys.

-
Select New Signature Key and Submit. Do not disable your old signature key if you are using webhooks with another system.
-
Complete the Authorize.Net verify-your-identity step.

-
Record the Current Signature Key.

-
Enter this into the Signature Key field in Shuttle and Save.

-
Shuttle then installs itself as a webhook endpoint on your account and triggers a webhook by requesting a transaction on an invalid card number that will be declined.
Once the webhook is received, the UNVERIFIED label is replaced with:
- VERIFIED: if everything was successful.
- UNSIGNED: if the signature key did not match. In this case, follow the steps again.
Please noteAccounts where webhooks are UNVERIFIED or UNSIGNED will ignore webhook updates.
For common issues after connecting, see the Authorize.Net FAQs.