Log Authorize.Net payments to QuickBooks and a reconciliation sheet

By General Input

Every settled Authorize.Net capture lands in QuickBooks as a sales receipt and in a Google Sheet so finance can reconcile the two systems automatically.

Integrations

  • Authorize.Net
  • QuickBooks Online
  • Google Sheets

Type

Deterministic Code

Categories

  • Finance
  • Operations

Whenever Authorize.Net captures a new payment (webhook: net.authorize.payment.authcapture.created), sync it deterministically into QuickBooks Online and log a reconciliation row in Google Sheets. This event fires for both one-shot captures and successful recurring subscription charges, and I want to handle both the same way.

Guardrails before doing any work: skip transactions whose testRequest flag is true so sandbox traffic never touches the books, and dedupe on the Authorize.Net transId so webhook retries or duplicate deliveries never double-book revenue. The transId is unique and immutable per transaction, so it's the right idempotency key. If a sales receipt already exists for this transId (either recorded in the reconciliation sheet or discoverable via QuickBooks), stop and do nothing.

Step 1: enrich the webhook. Use Authorize.Net Get Transaction Details on the incoming transId to pull the payer's email, first/last name, settled amount, and card summary (card type and last four digits). The webhook payload itself is thin; Get Transaction Details is where the actual customer and card info live.

Step 2: resolve the customer in QuickBooks. Use QuickBooks Query Entities with a SQL-like query against Customer, matching on the payer's email (for example: SELECT * FROM Customer WHERE PrimaryEmailAddr = '<email>'). If exactly one customer comes back, use them. If no customer matches, fall back to Create Customer with DisplayName built from the payer's name and PrimaryEmailAddr set to the Authorize.Net email, then use the newly created customer. If more than one customer matches the email (rare), pick the most recently updated active one.

Step 3: book the revenue. Use QuickBooks Create Sales Receipt against the matched customer with a single line item for the captured amount, and put the Authorize.Net transId into PaymentRefNum and PrivateNote so finance can search either field to trace the charge. Use TxnDate matching the Authorize.Net settlement date.

Step 4: log for reconciliation. Append a row to the reconciliation Google Sheet using Append Values, with columns in this order: date (Authorize.Net settlement date), transId, customer name, amount, card last four, and the QuickBooks sales receipt id returned from step 3. This is the tie-out finance uses to reconcile Authorize.Net settlement batches against QuickBooks revenue.

If any step fails after the sales receipt is created (for example, the sheet append), still surface the sales receipt id so finance can reconcile manually; do not roll back the receipt. If Get Transaction Details or the customer lookup fails, do not create a sales receipt.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seatsBuild audience segments from product usage and push to LoopsTurn the people who engage with your posts into Pipedrive leads