Authorize.Net

Connect your Authorize.Net merchant account to process credit card and ACH transactions through Preczn.

Connect your merchant's Authorize.Net account to process credit card and ACH (eCheck) transactions through Preczn.

Authorize.Net is a direct processor: each merchant holds their own Authorize.Net account, and the two Authorize.Net credentials are stored on that merchant's connection in Preczn. There is no merchant boarding. A merchant must already have an Authorize.Net account before it can be connected.

Supported Capabilities

CapabilityStatusNotes
Credit Card TransactionsSupportedFull lifecycle: sale, auth, capture, void, refund, and verify
ACH (Bank Account) TransactionsSupportedeCheck payments using bank routing and account numbers
Level II DataSupportedTax and duty amounts
CVV ResultsSupportedReturned on sale, auth, and verify transactions
Apple Pay / Google PayNot supportedWallet transactions cannot be routed to Authorize.Net
Merchant OnboardingNot supportedMerchants sign up with Authorize.Net directly, then link their account

Supported Transaction Types

TypeDescription
SaleAuthorize and capture in a single request
AuthAuthorize only (hold funds without capturing)
CaptureCapture a previous authorization, in full or in part
VoidCancel an auth or sale before it settles
RefundReturn funds from a completed transaction, in full or in part
VerifyValidate a card without charging it (see Verify)

Adding Merchant Credentials

Authorize.Net requires two values, both found in the merchant's Authorize.Net Merchant Interface. Both are required. A connection saved without either one is rejected.

CredentialAPI fieldCSV columnDescription
API Login IDkeyAuthorizeNet_api_loginIdentifies the merchant's account
Transaction KeysecretAuthorizeNet_transaction_keyAuthenticates requests for that account
📘

Credential Verification

Preczn verifies Authorize.Net credentials with Authorize.Net when you save them, so a mistyped API Login ID or Transaction Key is caught at configuration time rather than on the first transaction.

Enter them on the merchant's Authorize.Net connection in the Dashboard, or send them to the connection update endpoint. See Linking Existing Credentials. They can also be supplied when importing merchants via CSV, using the column headers in the table above.

Required Payment Form Fields

Authorize.Net lets a merchant mark payment form fields as required, and those settings apply to API transactions too. When a transaction is missing a field the merchant marked required, Authorize.Net rejects it before it reaches the processor. The transaction returns E (Error), with one message per missing field in errors.

Card Code, Authorize.Net's term for the card verification value (CVV), is the field merchants most often have marked required. The Payment Card Industry Data Security Standard (PCI DSS) doesn't allow the CVV to be stored after authorization, so Preczn never keeps it with a stored token. A transaction that uses a stored token therefore never includes a card code, and on these accounts every token transaction fails with "Card Code is required." Card Code must not be required on any merchant that charges stored tokens.

Other required fields cause the same failure. For example, if the merchant requires First Name and Last Name, a transaction without them fails with "Bill To First Name is required." and "Bill To Last Name is required." First and last name reach Authorize.Net only when the transaction also includes billingAddress.

Before you process transactions, have the merchant review these settings in the Authorize.Net Merchant Interface. Authorize.Net controls its Merchant Interface, so the menu names below reflect it at the time of writing and may change. If the merchant can't find the setting, Authorize.Net support can point them to the current Form Fields settings.

  1. Go to Payments > Payment Settings > Payment Forms > Form Fields.
  2. Clear Required on Card Code if the merchant charges stored tokens.
  3. For any other field marked Required, confirm that every transaction you send includes it, or clear Required.
  4. Save the settings.

Authorize.Net still checks a card code when a transaction includes one.

Processing Transactions

Route transactions to Authorize.Net the same way as any other connection: through a plan or a direct connection reference on the transaction. The sections below cover the behavior specific to Authorize.Net.

Outcomes and Held Transactions

Authorize.Net returns the outcome of every transaction on the API response itself. Most transactions are A (Approved), D (Declined), or E (Error) the moment the request completes.

A transaction that Authorize.Net's fraud filters hold for review returns as P (Pending). The merchant approves or declines a held transaction in the Authorize.Net Merchant Interface.

⚠️

Held transactions stay Pending in Preczn

Preczn does not receive an update when the merchant approves or declines a held transaction in Authorize.Net. The Preczn transaction stays P (Pending). Check the outcome in the Authorize.Net Merchant Interface.

Verify and Card Checks

A Verify on an Authorize.Net connection is performed as a zero-dollar authorization, so it validates the card without moving money and without a capture to reverse.

Captures and Refunds

Captures and refunds may be for the full amount or a partial amount. A full capture or refund uses the approved amount of the original transaction.

CVV Results

Authorize.Net returns a card-code verification result on sale, auth, and verify transactions, and Preczn normalizes it to its standard values:

Preczn resultMeaning
MMatch
NNo match
UUnavailable or not checked

Send the CVV to get a meaningful result. Transactions that use a stored token carry no CVV, so they return U.

Stored Credentials and Card on File

Preczn does not send a stored-credential or card-on-file indicator to Authorize.Net. A transaction that uses a stored payment token reaches Authorize.Net as a standard card-not-present transaction with no card code, whatever usage type the token carries.

Because no card code is sent, the merchant's Authorize.Net account must not require one. See Required Payment Form Fields.

Level II Data

Authorize.Net accepts Level II data, which can qualify commercial and purchasing-card transactions for better interchange:

Preczn fieldSent to Authorize.Net as
taxTax amount
dutyTaxDuty amount
orderPurchase order number

Tax and duty are not sent on a Verify. See Level II Data for how to populate these fields.

Data Sent to Authorize.Net

Preczn forwards the following with each sale, auth, and verify:

  • Cardholder first and last name
  • Billing address and shipping address
  • Customer IP address
  • Invoice number (invoice) and description (description)
  • Metadata, as Authorize.Net user fields
⚠️

Two fields are truncated

The invoice number is truncated to 20 characters, and the description to 255 characters. Longer values reach Authorize.Net cut short. The full values stay intact on the Preczn transaction.

Authorize.Net's API has no field Preczn maps the following to, so these are accepted by Preczn and used elsewhere but never reach Authorize.Net:

Transaction Status Mapping

Authorize.Net responsePreczn statusWhat it means
ApprovedA ApprovedThe transaction succeeded; processorTransactionId carries Authorize.Net's transaction ID
DeclinedD DeclinedAuthorize.Net or the issuer rejected the transaction
Held for reviewP PendingA fraud filter held the transaction (see Held Transactions)
ErrorE ErrorAuthorize.Net could not process the request, such as a missing required field or invalid credentials

On a decline or hold, Authorize.Net's own response text is surfaced as processorMessage. On an error, Authorize.Net's error text is returned in errors.

Testing in the Sandbox

  1. Create a sandbox account at developer.authorize.net.
  2. Add the merchant's Authorize.Net connection in Test Mode using the sandbox API Login ID and Transaction Key.
  3. Send transactions using the standard Preczn test cards. Preczn substitutes Authorize.Net's sandbox card and bank account numbers automatically, so no processor-specific test data is needed for approvals.

Test and Live connections are configured separately, and Preczn routes each transaction to the matching Authorize.Net environment based on the mode it runs in.

If you resend the same test card and amount within two minutes, Authorize.Net rejects the second transaction as a duplicate. See the FAQ.

FAQ

Where do I find the API Login ID and Transaction Key?

Both come from the merchant's Authorize.Net Merchant Interface. A merchant who cannot locate them should contact Authorize.Net support. Preczn cannot retrieve them.

Why does a transaction fail with '… is required'?

The merchant's Authorize.Net account marks that field as required, and the transaction didn't include it. Authorize.Net rejects these transactions before they reach the processor, so the cardholder is never charged. The most common case is "Card Code is required." Card Code is Authorize.Net's term for the CVV, which can't be stored with a token under PCI DSS, so a transaction that uses a stored token never carries one. Clear the setting as described in Required Payment Form Fields, or include the field in your transactions, then retry.

Why does a transaction fail with 'A duplicate transaction has been submitted'?

Authorize.Net rejects a transaction that matches one submitted in the previous two minutes. It compares fields such as the card or bank account, amount, transaction type, invoice number, and billing details. Preczn returns the rejected transaction as E (Error) with Authorize.Net's message in errors. Its processorTransactionId is 0 because Authorize.Net doesn't create a transaction. The earlier transaction is unaffected, and the cardholder isn't charged twice.

To send an intentional repeat charge, wait two minutes or give each transaction a unique invoice. Preczn truncates invoice numbers to 20 characters, so two values that differ only after the 20th character still match. Preczn uses Authorize.Net's default two-minute window and doesn't change it.

Why is a transaction stuck in Pending?

Authorize.Net's fraud filters held it for review. Preczn does not receive the outcome when the merchant approves or declines it, so the Preczn transaction stays Pending. Check the transaction in the Authorize.Net Merchant Interface for its final state.

Can I send Apple Pay or Google Pay transactions?

No. Wallet transactions cannot be routed to Authorize.Net. Route wallet volume to a connection that supports it. See Apple Pay on the Web and Google Pay for Web.

Why is my invoice number shortened on the Authorize.Net side?

Authorize.Net's invoice number field accepts 20 characters, and Preczn truncates longer values. The full value stays intact on the Preczn transaction. Only the copy sent to Authorize.Net is shortened. If you reconcile between systems using the invoice number, keep it within 20 characters.

Does a Verify charge the cardholder?

No. A Verify on Authorize.Net is run as a zero-dollar authorization, so no funds are captured and there is nothing to void afterward. It confirms the card is valid and returns a CVV result.

Can I board new merchants to Authorize.Net through Preczn?

No. Preczn connects merchants who already hold an Authorize.Net account. It does not submit applications to Authorize.Net. Once the merchant has their API Login ID and Transaction Key, add them to the merchant's connection and transactions can be routed immediately.


Did this page help you?