---
title: Authorize.net Setup
description: Authorize.net joins Stripe as a card gateway, in beta for merchants in the United States and Canada. It takes payments at checkout, on invoices, from saved cards and on renewals. It has no webhook, it processes exactly one currency, and…
url: "https://rackhelm.com/documentation/authorize-net-setup/"
updated: "2026-09-24"
category: "Billing & Payments"
---

# Authorize.net Setup

Authorize.net joins Stripe as a card gateway, in beta for merchants in the United States and Canada. It takes payments at checkout, on invoices, from saved cards and on renewals. It has no webhook, it processes exactly one currency, and it has a deliberate sandbox regime that keeps test cards away from live customers. This article covers all of it. It is written for operators.

> **Note:** Authorize.net support is in beta. Treat a new gateway as something to prove with your own money before customers see it — the sandbox workflow below is built around exactly that.

## Before you start

- An Authorize.net merchant account, US or Canadian.
- From the Merchant Interface, under **Account → API Credentials & Keys**: your **API Login ID** and a **Transaction Key**.
- Access to **Billing → Payment Gateways** in RackHelm, which in a default install means a Super Admin account.
- A dedicated staff account to act as the sandbox tester — not your own.

## Step 1 — Add the gateway

1. Open **Billing → Payment Gateways** and select **Add Gateway**, then Authorize.net.
2. Paste the **API Login ID** and the **Transaction Key**.
3. Set **Currency**. This is the one currency your Authorize.net account processes; RackHelm never guesses it, and the gateway cannot be enabled without it.
4. Set **Mode** to Sandbox.
5. Save.

### The other fields

| Field | What it is for |
| --- | --- |
| **Public Client Key** | Public, and used by the card form in the browser. **Test connection fills it in for you.** Paste it by hand from **Account → Manage Public Client Key** only if Authorize.net refuses to hand over the merchant details. |
| **Signature Key** | Optional and currently unused — it exists only for webhooks, which this gateway does not have yet. Generated at **Account → API Credentials & Keys → New Signature Key**, and never shown again after that, so store it somewhere if you generate one. |
| **Card-on-file flags** | Marks saved-card and renewal charges as stored-credential transactions, which is what the card schemes expect for payments the customer is not present for. |

## Step 2 — Enrol your sandbox testers

Sandbox mode is locked down on purpose. In Sandbox, **only the enrolled testers can see or pay with the gateway**, whatever **Who may use it** says — and an empty tester list means nobody at all.

1. Re-open the gateway with **Configure**. Testers are enrolled after the gateway exists, not while adding it.
2. Under **Sandbox testers**, pick one or more staff accounts. Hold `Ctrl` or `⌘` to select several, or to un-pick one.
3. Save.

> **Warning:** Use a dedicated tester account, never your own. Sandbox cards, sandbox invoices and sandbox services all land on the tester's account, and you will be deleting them later.

## Step 3 — Test the connection

1. Save your changes first. The test reads the *saved* credentials, not what is on screen.
2. Select **Test connection**. It runs against whichever environment Mode is set to.
3. On success the Public Client Key is filled in automatically.

> **Note:** Testing never switches the gateway on or off. A passing test tells you the credentials work; enabling it is still a separate, deliberate act.

## Step 4 — Work through a sandbox order

1. Sign in as the tester and buy a cheap product with an Authorize.net test card.
2. Confirm the invoice settles, the service provisions and the email arrives.
3. Save a card, then let or force a renewal to run against it.
4. Try a card the sandbox declines, and confirm the failure is reported rather than silently retried.

### Clean up after every test session

Sandbox activity is real data in your portal. At the end of each session:

1. Cancel the tester's services.
2. **Void** the sandbox invoices, so test payments drop out of the income reports.
3. At the very end, and before switching to Live: **Purge sandbox cards**.

> **Warning:** Purge sandbox cards before going Live. Sandbox card records cannot be charged against a live account, and leaving them behind means a renewal that fails for a reason nobody can see.

## Step 5 — Go live

1. Switch **Mode** to Live and save. **Who may use it** becomes a real choice at this point; in Sandbox it is always Staff only.
2. Leave it on **Staff only**. Make one real charge as a staff member, confirm it in the Merchant Interface, then void it.
3. Switch **Who may use it** to **Everyone**.

## There is no webhook

The portal has no Authorize.net webhook endpoint, so do not add one in the Merchant Interface — the gateway does not need it and nothing will receive it. The consequence is that a payment held for review, or one whose outcome never came back, is not resolved automatically. Those wait for a person under **Billing → Payment Attempts**, where staff confirm, void or release them. The invoice stays frozen until then, which is what prevents a second charge.

## Currency

An Authorize.net account processes one currency, the one you set in Step 1. Customers whose account currency differs are not offered it. To take a second currency you need a second Authorize.net account and a second gateway.

## Analytics and the cookie banner

Google Analytics and the cookie consent banner are suppressed on any page carrying the Authorize.net card form, as PCI DSS 6.4.3 requires. This is automatic. If you are wondering why a checkout step is missing from your analytics funnel, that is why.

## Troubleshooting

| Symptom | Cause |
| --- | --- |
| Nobody can see the gateway in Sandbox | The sandbox tester list is empty. An empty list means nobody, including you. |
| **Who may use it** appears to be ignored | You are in Sandbox, where it is always Staff only by design. |
| The card field never loads | No Public Client Key. Run Test connection, or paste it from Account → Manage Public Client Key. |
| The gateway will not enable | Currency is unset. It is required and never inferred. |
| Test payments are inflating the income reports | Sandbox invoices were cancelled rather than voided. |
| Renewals fail after going Live | Sandbox cards were not purged before the switch. |
