Overview

The Personal Business Crossover feature allows small business owners to efficiently manage the separation between personal and business finances. Many small business owners use personal accounts for business transactions, which can lead to financial tracking issues, tax complications, and bookkeeping overhead.

This functionality provides a structured way to:

  • Connect personal accounts through Plaid or manually
  • Mark personal transactions as business when necessary
  • Automatically generate journal entries with appropriate ledger mappings
  • Revert business transactions back to personal when needed

Key Concepts

Personal External Accounts

Personal External Accounts are financial accounts that belong to the business owner but are not primarily designated for business use. Common examples include:

  • Personal bank accounts
  • Personal credit cards
  • Personal savings accounts

When connecting an external account, users must designate it as either Personal or Business. This designation determines how associated transactions will be treated.

Ledger Mapping

Each Personal External Account requires specific ledger mappings:

  1. Contribution Ledger: Used when expenses are paid from a personal account
  2. Distribution Ledger: Used when revenue is received in a personal account
Even though the API schema does not mark these ledger IDs as strictly required, our system requires both contribution_ledger_id and distribution_ledger_id for any Personal external account. Without these, we cannot track contributions or distributions accurately.

How It Works

Connecting Personal External Accounts

Personal external accounts can be connected in two ways:

1. Plaid Integration

  1. The user selects their accounts through the Plaid Link component.
  2. In the confirmation screen, they designate the account as Personal.
  3. They select appropriate ledgers for Contributions and Distributions.

2. Manual Creation

Users can manually create a personal external account by calling the Create an External Account endpoint:

POST /v0/business/{business_id}/external-account

Providing:

  • Designation as "type": personal
  • Ledger IDs for contribution_ledger_id and distribution_ledger_id

Example request:

{
  "name": "Personal Bank Account",
  "mask": "1234",
  "type": "personal",
  "source": "manual",
  "contribution_ledger_id": "ldg_123456",
  "distribution_ledger_id": "ldg_789012"
}

Managing Personal Transactions

All transactions from personal accounts are automatically created with "type": "personal". These transactions:

  • Do not affect the business books until marked as business
  • Can be filtered in the UI or API with "type": "personal"
  • Appear in the “Personal Review” page for processing

Marking Transactions as Business

When a personal transaction should be treated as business:

  1. The user marks the transaction as business through the UI or API by calling the Update Transactions for a Business endpoint:

    PATCH /v0/business/{business_id}/transactions
    

    Example request:

    [
      {
        "transaction_id": "txn_WQMDNUHpBThYSNh4AprDBo",
        "type": "business"
      },
      {
        "transaction_id": "txn_ZXMPQRSfLmOaNBc5DqrEFp",
        "type": "business"
      }
    ]
    
  2. The system automatically generates a journal entry to reflect the transaction on the books.

    • For expenses paid from a personal account:

      • Debit: Expense ledger (e.g., Meals, Office supplies)
      • Credit: Contribution ledger (representing the owner’s money contributed)
    • For revenue received in a personal account:

      • Debit: Distribution ledger (representing funds drawn by the owner)
      • Credit: Revenue ledger (e.g., Sales Revenue)

    From an accounting perspective:

    • Paying for a business expense from personal funds increases the business’s expenses, offset by an equity contribution.
    • Receiving business revenue in a personal account increases the business’s revenue, offset by an equity distribution (or “owner’s draw”).

Reverting to Personal

If a transaction previously marked as business needs to be reverted:

  1. The user updates the transaction’s type from "business" back to "personal" through the UI or API by calling the Update Transactions for a Business endpoint:

    PATCH /v0/business/{business_id}/transactions
    
    [
      {
        "transaction_id": "txn_abc123",
        "type": "personal"
      }
    ]
    
  2. The system automatically deletes the associated journal entry, removing its impact on the books.

Common Use Cases

Case 1: Business Expenses on Personal Credit Card

A business owner pays $100 for office supplies using their personal credit card:

  1. The transaction appears as personal in the review page.
  2. The owner marks the transaction as business.
  3. The system creates a journal entry:
    • Debit: Office Supplies $100
    • Credit: Owner’s Contribution $100

Case 2: Business Revenue in Personal Bank Account

A customer pays $500 to the owner’s personal bank account:

  1. The transaction appears as personal in the review page.
  2. The owner marks the transaction as business.
  3. The system creates a journal entry:
    • Debit: Owner’s Distribution $500 (or “Owner’s Draw”)
    • Credit: Sales Revenue $500

Questions? Reach out via our Contact form.