AnchorAnchor
Guides

Stripe Integration

Connect your Stripe account to sync charges, fees, refunds, and payouts into your accounting automatically.

Overview

Not product billing

Anchor itself is free forever — there is no seat plan or storage add-on to buy. Stripe here is optional for (1) syncing your own Stripe business activity into the books, and (2) card payment links on invoices you send to your customers.

Anchor can use Stripe in two ways:

  • Stripe Connect — Connect your Stripe account to sync charges, fees, refunds, payouts, and customers into accounting
  • Invoice payment links — One-time Checkout links so your customers can pay invoices by card

Stripe Connect (Account Sync)

Connect your Stripe account from Settings > Integrations > Stripe to automatically import all your Stripe activity into Anchor's accounting system.

How It Works

Anchor uses the standard GAAP/IFRS-compliant gross method:

  • Every charge is recorded at its full amount (gross revenue)
  • Stripe fees are tracked as separate expenses
  • Refunds reverse the original revenue entry
  • Payouts reconcile from the Stripe clearing account to your bank
  • Customers sync as contacts in your contact book

Stripe is treated as a clearing account (current asset, code 1350). This gives you a complete, audit-ready picture of your Stripe activity.

Connecting Your Account

  1. Go to Settings > Integrations > Stripe
  2. Click Connect Stripe Account
  3. Authorize Anchor in the Stripe OAuth flow
  4. Configure your account mappings (clearing, revenue, fees, and payout bank account)
  5. Run your first sync

You must configure account mappings before running a sync. Anchor suggests defaults based on your existing chart of accounts, but you should verify they match your accounting setup.

Account Mappings

After connecting, you need to map three accounts from your chart of accounts:

MappingTypePurpose
Clearing AccountAssetHolds funds between charge and payout (acts as a Stripe clearing account)
Fees AccountExpenseStripe's per-transaction processing fees
Revenue AccountRevenueWhere charge amounts are credited
Payout Bank AccountBank AccountWhere Stripe payouts are deposited

These mappings use your existing chart of accounts, so they work regardless of your country's accounting standards or numbering conventions. You can change them at any time from the integration settings page.

Journal Entries Created

On each charge:

  • DR Stripe Clearing (charge amount)
  • CR Revenue (charge amount)
  • DR Payment Processing Fees (Stripe fee)
  • CR Stripe Clearing (Stripe fee)

On each refund:

  • DR Revenue (refund amount)
  • CR Stripe Clearing (refund amount)

On each payout:

  • DR Bank Account (payout amount)
  • CR Stripe Clearing (payout amount)

Webhook Events (Connected Account)

EventWhat it does
charge.succeededRecords revenue and fee journal entries
charge.refundedReverses revenue entries for each refund
payout.paidRecords bank transfer and creates bank transaction
customer.createdCreates or links a contact
customer.updatedUpdates the linked contact
account.application.deauthorizedMarks integration as disconnected

Self-Hosting Setup

To enable Stripe Connect (host/operator configuration):

  1. Register a Stripe Connect platform
  2. Set STRIPE_CONNECT_CLIENT_ID in your environment
  3. Configure the OAuth redirect URI: https://your-domain.com/api/v1/integrations/stripe/callback
  4. Create a Connect webhook in your Stripe dashboard pointing to https://your-domain.com/api/integrations/stripe/webhook with the following events: charge.succeeded, charge.refunded, payout.paid, payout.failed, customer.created, customer.updated, account.application.deauthorized
  5. Set STRIPE_CONNECT_WEBHOOK_SECRET to the signing secret from that webhook

Anchor uses a single platform-level Connect webhook rather than per-account webhooks. This means connected users cannot accidentally break the integration by deleting webhooks from their own Stripe dashboard. Deauthorization events are also always delivered to the platform.

MCP Tools

The following MCP tools are available for AI agents:

ToolDescription
get_stripe_integration_statusCheck connection status, account mappings, and last sync time
connect_stripeGenerate an OAuth URL to connect a Stripe account
disconnect_stripeDisconnect the Stripe account (requires confirmation)
trigger_stripe_syncStart a manual sync for the last N days (1-90)
list_stripe_sync_logView recent sync history with status and errors

When you send an invoice to a customer, Anchor generates a Stripe-powered payment link they can use to pay by card.

How it works:

  1. Create an invoice and add line items
  2. Send the invoice to your customer - it includes a payment link
  3. The customer clicks the link and is taken to a Stripe Checkout page
  4. They enter their card details and complete payment
  5. Stripe fires a checkout.session.completed webhook
  6. Anchor automatically marks the invoice as paid and creates a journal entry (DR Bank, CR Accounts Receivable)

The entire flow is automatic after sending - no manual reconciliation needed.

Webhook events (invoice payments / Connect)

When Stripe is configured by the host, typical events include:

EventWhat it does
checkout.session.completedMarks invoice payments when customers pay via payment link
Connect charge / refund / payout eventsSync Stripe activity into the ledger when Connect is used

Without Stripe

Stripe is optional. Without it:

  • Core accounting, invoicing, banking, and VAT reports still work
  • Card payment links on invoices are not available
  • See Billing & plans — Anchor remains free forever

On this page