{
  "slug": "authorize-net",
  "url": "https://apps.sectorgrowth.com/integrations/authorize-net/",
  "name": "Authorize.net",
  "vendor": "Visa",
  "aliases": [
    "Authorize.Net",
    "Authorize.net payment gateway",
    "Authnet"
  ],
  "website": "https://www.authorize.net/",
  "category": {
    "slug": "payments-and-billing",
    "name": "Payments and billing",
    "url": "https://apps.sectorgrowth.com/categories/payments-and-billing/"
  },
  "summary": "Authorize.net takes the card payment, keeps the customer profile and runs the recurring billing. What a HubSpot sync can carry from it, and what stays put.",
  "answer": "No. Authorize.net has no app in the HubSpot App Marketplace as of September 2026, just fuzzy matches for its name, and HubSpot's own payments tool runs on Stripe. We recommend a custom API integration: signed Authorize.net webhooks, checked nightly against the reporting API, at 70 to 150 build hours. On every route, card numbers stay with Authorize.net; only ids, amounts, dates, statuses and the card brand reach HubSpot.",
  "nativeApp": {
    "status": "none",
    "verifiedAt": "2026-09-28"
  },
  "api": {
    "style": "rpc",
    "auth": "api-key",
    "webhooks": "yes",
    "changedSince": "partial",
    "sandbox": "yes",
    "docsUrl": "https://developer.authorize.net/api/reference/index.html"
  },
  "objects": [
    {
      "source": "Customer profile",
      "hubspot": "contact",
      "direction": "to_hubspot",
      "key": "Authorize.net customer profile id in a custom HubSpot property",
      "notes": "A profile whose payment profile is marked business attaches to the company instead."
    },
    {
      "source": "Customer payment profile",
      "hubspot": "contact",
      "direction": "to_hubspot",
      "key": "Payment profile id, under its customer profile id",
      "notes": "Card brand only, since the masked number and the expiry stay at Authorize.net."
    },
    {
      "source": "Transaction",
      "hubspot": "payment",
      "direction": "to_hubspot",
      "key": "Transaction id in a custom payment property, with the invoice number carrying the deal id",
      "notes": "Charges, refunds, voids and declines alike, with amount, date and Authorize.net's own status beside HubSpot's."
    },
    {
      "source": "Automated Recurring Billing subscription",
      "hubspot": "custom",
      "direction": "to_hubspot",
      "key": "Subscription id",
      "notes": "A custom object needs Enterprise, so smaller portals carry the status and next billing date on the deal."
    },
    {
      "source": "Declined charge or suspended subscription",
      "hubspot": "engagement",
      "direction": "to_hubspot",
      "key": "Transaction id or subscription id, one task per failure",
      "notes": "The task goes to the owner of the contact or deal, so a failed renewal reaches a person."
    }
  ],
  "approaches": [
    {
      "kind": "custom",
      "fit": "recommended",
      "why": "Signed webhooks carry each event and a nightly pass over settled batches catches what they miss, all keyed on Authorize.net ids behind a field allowlist that lets no card detail through except the brand."
    },
    {
      "kind": "ipaas",
      "fit": "possible",
      "why": "Celigo documents a prebuilt Authorize.net connector that signs in with the API Login ID and Transaction Key, which suits a team already running Celigo that wants settled payments copied on a schedule. Zapier lists Authorize.net as not yet supported."
    },
    {
      "kind": "native",
      "fit": "avoid",
      "why": "Nothing in the HubSpot App Marketplace carries Authorize.net's name, and HubSpot's own payments tool runs on Stripe, so adopting it means changing processor rather than connecting this one."
    }
  ],
  "connectionMethods": [
    "api",
    "ipaas"
  ],
  "effort": {
    "discoveryHours": [
      10,
      20
    ],
    "buildHours": [
      70,
      150
    ],
    "buildBand": "70 to 150 hours",
    "typicalElapsed": "4 to 8 weeks"
  },
  "pattern": "webhook-queue",
  "faqs": [
    {
      "q": "Is there an Authorize.net app for HubSpot?",
      "a": "No. The HubSpot App Marketplace turns up fuzzy matches for Authorize.net and nothing named for it, though some form and payment apps mention it in their descriptions. Authorize.net's own site search and partner directory list no HubSpot integration either, so connecting the two starts with a build rather than an install, and with deciding which records HubSpot actually needs."
    },
    {
      "q": "Can Authorize.net card numbers be stored in HubSpot?",
      "a": "No. HubSpot's Product and Services Catalog excludes full card numbers and card security codes even from its Enterprise Sensitive Data feature, and it lists the last four digits as a Sensitive Data type, so this sync leaves those out too. Authorize.net returns the number masked, and the expiry too unless a request asks otherwise. The card brand is the only card detail that crosses, beside ids, amounts, dates and statuses."
    },
    {
      "q": "Does HubSpot payments work with Authorize.net?",
      "a": "No. HubSpot's knowledge base says HubSpot payments uses Stripe infrastructure to process payments, and the other processing option it describes is connecting a Stripe account. Neither routes a charge through Authorize.net. A business that stays on Authorize.net keeps its customer profiles and recurring schedules there and syncs the results into HubSpot, rather than changing processor to use HubSpot's checkout."
    },
    {
      "q": "How soon does an Authorize.net payment appear in HubSpot?",
      "a": "The charge lands when its webhook does, with the status Authorize.net reported at that moment. The settled status follows within a day: Authorize.net groups transactions into a batch every 24 hours and settles after the account's cut-off time, 4 pm Pacific unless changed. Recurring charges run at about 2 a.m. Pacific on their scheduled date, so a renewal shows up early that morning."
    },
    {
      "q": "What happens when an Authorize.net webhook is missed or arrives twice?",
      "a": "A duplicate is harmless: the second copy updates the record the first one wrote, since each record is matched on its Authorize.net id. A failed delivery is retried three times at three-minute intervals, three more at eight hours and four at 48 hours. Anything still missing is recovered by the nightly pass over settled batches and by the notification history, which lists failed deliveries and returns each one with its payload."
    },
    {
      "q": "How is an Authorize.net webhook signature checked?",
      "a": "Authorize.net hashes each notification body with HMAC-SHA512, keyed on the account's Signature Key, and sends the result in the X-ANET-Signature header. The receiver repeats the hash and rejects a mismatch. The Merchant Interface shows the key as 128 hexadecimal characters that have to be converted to binary before hashing, and no notification is sent until a Signature Key exists."
    },
    {
      "q": "Can HubSpot show when an Authorize.net subscription renews next?",
      "a": "Yes, as a computed date. Authorize.net returns each subscription's start date, its interval in days or months and its total and past occurrences, with no next billing date among the fields, so the sync works it out. It follows Authorize.net's own rule that a monthly subscription starting on the 31st bills on the last day of every shorter month."
    },
    {
      "q": "What does an Authorize.net and HubSpot integration take in hours?",
      "a": "Plan on 10 to 20 hours of discovery and 70 to 150 hours of build covering customer profiles, payments, subscriptions and the decline tasks, with signature checks, the nightly batch sweep and a cutover rehearsed in the sandbox first. Most discovery hours go to two questions: where cards are captured today, and which other websites and carts share the account's keys."
    }
  ],
  "sections": [
    {
      "depth": 2,
      "text": "Why teams connect Authorize.net to HubSpot",
      "anchor": "#why-teams-connect-authorizenet-to-hubspot",
      "url": "https://apps.sectorgrowth.com/integrations/authorize-net/#why-teams-connect-authorizenet-to-hubspot"
    },
    {
      "depth": 2,
      "text": "What syncs",
      "anchor": "#what-syncs",
      "url": "https://apps.sectorgrowth.com/integrations/authorize-net/#what-syncs"
    },
    {
      "depth": 2,
      "text": "Architecture",
      "anchor": "#architecture",
      "url": "https://apps.sectorgrowth.com/integrations/authorize-net/#architecture"
    },
    {
      "depth": 2,
      "text": "Three ways to connect",
      "anchor": "#three-ways-to-connect",
      "url": "https://apps.sectorgrowth.com/integrations/authorize-net/#three-ways-to-connect"
    },
    {
      "depth": 2,
      "text": "What breaks and how we prevent it",
      "anchor": "#what-breaks-and-how-we-prevent-it",
      "url": "https://apps.sectorgrowth.com/integrations/authorize-net/#what-breaks-and-how-we-prevent-it"
    },
    {
      "depth": 3,
      "text": "A card number in a description",
      "anchor": "#a-card-number-in-a-description",
      "url": "https://apps.sectorgrowth.com/integrations/authorize-net/#a-card-number-in-a-description"
    },
    {
      "depth": 3,
      "text": "Webhooks switched to inactive",
      "anchor": "#webhooks-switched-to-inactive",
      "url": "https://apps.sectorgrowth.com/integrations/authorize-net/#webhooks-switched-to-inactive"
    },
    {
      "depth": 3,
      "text": "Keys rotated for another cart",
      "anchor": "#keys-rotated-for-another-cart",
      "url": "https://apps.sectorgrowth.com/integrations/authorize-net/#keys-rotated-for-another-cart"
    },
    {
      "depth": 3,
      "text": "Active subscriptions that stopped paying",
      "anchor": "#active-subscriptions-that-stopped-paying",
      "url": "https://apps.sectorgrowth.com/integrations/authorize-net/#active-subscriptions-that-stopped-paying"
    },
    {
      "depth": 3,
      "text": "Settlement dates read as local time",
      "anchor": "#settlement-dates-read-as-local-time",
      "url": "https://apps.sectorgrowth.com/integrations/authorize-net/#settlement-dates-read-as-local-time"
    },
    {
      "depth": 2,
      "text": "Our approach",
      "anchor": "#our-approach",
      "url": "https://apps.sectorgrowth.com/integrations/authorize-net/#our-approach"
    }
  ],
  "caseStudies": [],
  "guides": [
    "https://apps.sectorgrowth.com/guides/choose-a-hubspot-integration-approach/"
  ],
  "status": "published",
  "verifiedAt": "2026-09-28",
  "updatedAt": "2026-09-28",
  "authors": [
    {
      "name": "Prash",
      "role": "Lead of Technical Integrations and AI Solutions"
    }
  ],
  "sources": [
    {
      "title": "Authorize.net API Documentation",
      "url": "https://developer.authorize.net/api/reference/index.html"
    },
    {
      "title": "Authorize.net API Documentation - Webhooks",
      "url": "https://developer.authorize.net/api/reference/features/webhooks.html"
    },
    {
      "title": "Authorize.net API Documentation - Customer Profiles",
      "url": "https://developer.authorize.net/api/reference/features/customer-profiles.html"
    },
    {
      "title": "Authorize.net API Documentation - Recurring Billing",
      "url": "https://developer.authorize.net/api/reference/features/recurring-billing.html"
    },
    {
      "title": "Authorize.net API Documentation - Transaction Reporting",
      "url": "https://developer.authorize.net/api/reference/features/transaction-reporting.html"
    },
    {
      "title": "Authorize.net API Documentation - Authorize.net Accept",
      "url": "https://developer.authorize.net/api/reference/features/accept.html"
    },
    {
      "title": "Testing guide | Authorize.net Developer Center",
      "url": "https://developer.authorize.net/hello_world/testing_guide.html"
    },
    {
      "title": "Common setup questions | Authorize.net Developer Center",
      "url": "https://developer.authorize.net/hello_world/common_setup_questions.html"
    },
    {
      "title": "What are API Credentials and Keys and how to manage them in the Merchant Interface? - New Experience (2.0)",
      "url": "https://support.authorize.net/knowledgebase/Knowledgearticle/?code=KA-07619"
    },
    {
      "title": "About us | Authorize.net",
      "url": "https://www.authorize.net/about-us.html"
    },
    {
      "title": "HubSpot Product & Services Catalog",
      "url": "https://legal.hubspot.com/hubspot-product-and-services-catalog"
    },
    {
      "title": "Set up HubSpot payments",
      "url": "https://knowledge.hubspot.com/payment-processing/set-up-payments"
    },
    {
      "title": "Payments API",
      "url": "https://developers.hubspot.com/docs/api-reference/latest/crm/objects/commerce-payments/guide"
    },
    {
      "title": "Create a payment",
      "url": "https://developers.hubspot.com/docs/api-reference/latest/crm/objects/commerce-payments/create-commerce-payment"
    },
    {
      "title": "Create and edit custom objects",
      "url": "https://knowledge.hubspot.com/object-settings/create-custom-objects"
    },
    {
      "title": "Set up a connection to Authorize.net",
      "url": "https://docs.celigo.com/hc/en-us/articles/360057778912-Set-up-a-connection-to-Authorize-net"
    },
    {
      "title": "Authorize.net Integrations | Connect Your Apps with Zapier",
      "url": "https://zapier.com/apps/authorize-net/integrations"
    }
  ]
}