Skip to content

Authorize.net Import

Menu Location: Customers > Misc > Authorize.net Import


Overview

Authorize.net Import matches a customer export file from Authorize.net against your existing customers and updates their subscription's payment profile IDs on file. It is a one-time reconciliation tool, not an ongoing sync: use it when you need your subscriptions' stored Authorize.net profile IDs to catch up with what Authorize.net actually has (for example after a data mismatch, or before decommissioning a gateway integration).

Primary Functions:

  • Upload an Authorize.net customer export (XLSX) and match each row to a customer
  • Let you review and confirm (or override) each match before anything is saved
  • Update the matched customer's subscription with the Authorize.net profile ID, payment profile ID, and payment type
  • Automatically skip rows that would overwrite newer payment data than the row provides
  • Download the rows that were skipped, for a re-try or manual follow-up

Page Layout

The page is a single form that advances through three steps:

  • Upload step: a file picker for the XLSX export, with an "Upload and Preview" button
  • Preview step: a table of every matched row (Authorize.net data, matches found, a dropdown to pick which customer to update or skip), a summary of row/match counts, and "Confirm Import" / "Cancel" buttons
  • Report step: a summary of processed/skipped/error counts, a detailed per-row results table, and a "Download Skipped Rows CSV" link when rows were skipped

Import Process

Steps:

  1. Export customer/profile data from your Authorize.net account
  2. On this page, choose the exported file (must be .xlsx) and click "Upload and Preview"
  3. The system reads every row that has a CustomerProfileID and looks for a matching customer
  4. Review the Preview table: each row shows the Authorize.net data and a dropdown of possible customer matches (or "Skip / No Match")
  5. If a row has more than one possible match, verify and pick the correct customer from the dropdown
  6. Click "Confirm Import"
  7. The system updates the subscription's profile ID, payment profile ID, and payment type for each selected match
  8. Review the Report step for processed/skipped/error counts and the per-row detail

What Gets Read From the Export:

The importer only processes rows that have a CustomerProfileID value. From each row it reads: Email, Phone, FirstName, LastName, Address, City, StateProvince, CustomerProfileID, PaymentProfileID, CreationDate, and PaymentType.

What Gets Updated:

For the customer selected on each row, the subscription record's profile_id, payment_profile_id, payment_type, and payment_updated are updated. PaymentType in the export maps to Bank Account if it says "bankaccount"; anything else (including blank) is treated as Credit Card.

Matching Logic (checked in order, stops at the first that produces a match):

  1. Exact email match against the customer's login (users.username)
  2. Phone number match (last 10 digits, punctuation ignored) if no email match
  3. First name + last name match if no email or phone match
  4. Address match against the subscription's shipping street if no other match

If a row's match is ambiguous (more than one customer found), you must choose which one to update from the dropdown; the system adds an account note listing the other candidate customer IDs for the record.

Duplicate rows: if two or more spreadsheet rows resolve to the same customer, only the row with the newest CreationDate is kept for import; the others are noted as filtered duplicates on the Preview screen.

Newer-data protection: if the customer's subscription already has a payment_updated date newer than the spreadsheet row's CreationDate, that row is skipped automatically rather than overwriting newer data.


Common Use Cases

Use Case 1: Reconcile Missing or Mismatched Profile IDs

Goal: Some customers' subscriptions have the wrong (or no) Authorize.net profile ID on file.

Steps:

  1. Export the affected customers from Authorize.net
  2. Upload the export here and review the matches
  3. Confirm import; the subscription's profile ID, payment profile ID, and payment type are updated

Use Case 2: Verify Ambiguous Matches

Goal: A row matches more than one customer (for example, two customers share a name).

Steps:

  1. Upload the export and open the Preview step
  2. For any row flagged with multiple matches, use the dropdown to confirm the correct customer
  3. Confirm import; a note is added to the customer record listing the other candidate customer IDs that were not selected

Use Case 3: Retry Rows That Didn't Match

Goal: After an import, some rows were skipped because no customer matched.

Steps:

  1. On the Report step, download the "Skipped Rows CSV"
  2. Confirm those customers exist in the system (correct email, phone, name, or shipping address)
  3. Re-export and re-upload once the underlying data is fixed

Export File Requirements

The upload must be an .xlsx spreadsheet (not CSV) with a header row. Only rows with a CustomerProfileID value are imported; the importer also reads Email, Phone, FirstName, LastName, Address, City, StateProvince, CreationDate, PaymentProfileID, and PaymentType where present.


Troubleshooting

No Matches Found

Check:

  • Email in the export matches the customer's login email (users.username) exactly
  • If no email match, whether the phone number (last 10 digits) matches what's on the subscription
  • If no email or phone match, whether first and last name match exactly
  • Whether the shipping street address on the subscription contains the export's address text

Solutions:

  • Correct the export data or the customer record so one of the four match fields lines up
  • Re-upload once the data is fixed

Row Skipped During Import

Situation: A row had a selected match, but the report shows it as skipped.

Cause: The subscription already has a payment_updated date newer than the row's CreationDate, so the importer intentionally left the existing data alone. Download the Skipped Rows CSV from the Report step to see which rows this affected.

Duplicate Customer Rows Filtered

Situation: The Preview step shows fewer rows than your export had.

Cause: More than one row in the export matched the same customer. Only the row with the newest CreationDate is imported; the Preview page lists which rows were filtered and why.


Best Practices

  1. Review the Preview step carefully before confirming, especially any row flagged with multiple matches
  2. Re-export a clean file if many rows come back with no match, rather than trying to patch the spreadsheet by hand
  3. Check the account note left on any customer that had an ambiguous match, to confirm the right one was picked
  4. Use the Skipped Rows CSV to follow up on anything that didn't import instead of re-running the whole export

Quick Reference Card

Task Action
Start an import Upload the .xlsx export, click "Upload and Preview"
Resolve an ambiguous match Pick the correct customer from the row's dropdown
Skip a row Leave (or set) its dropdown to "Skip / No Match"
Finish the import Click "Confirm Import"
Follow up on skipped rows Click "Download Skipped Rows CSV" on the Report step
Run another file Click "Import Another File" on the Report step

FAQs

Will this import credit card numbers?

No. The importer only reads and stores profile IDs (CustomerProfileID, PaymentProfileID) and a payment type; it never handles raw card numbers.

What does it actually change on the customer?

It updates the matched customer's subscription record (profile_id, payment_profile_id, payment_type, payment_updated). It does not touch other customer or billing fields.

Can I undo an import?

There is no built-in undo. The importer only overwrites a subscription's payment fields when the export's CreationDate is newer than what's already on file, which limits accidental overwrites, but there is no one-click revert.

What if a customer has multiple Authorize.net profiles?

Each spreadsheet row is matched independently. If multiple rows resolve to the same customer, only the row with the newest CreationDate is imported; the rest are filtered out as duplicates.

Does this tool work with other payment gateways?

No, the matching and column reading is specific to an Authorize.net customer export format.