Skip to main content

One post tagged with "remittance"

View all tags

Sending Money Abroad: Choosing the Right Rail for Your Beancount Ledger

· 4 min read
Mike Thrift
Mike Thrift
Marketing Manager

International contractors, remote teammates, or family abroad can make cross-border payments part of your regular bookkeeping. Fees and currency swings add complexity, but a little planning helps you pick the right payment rail and keep your Beancount ledger accurate.

Step 1: Clarify the Purpose and Frequency

Start by recording why you are sending the money and how often it will happen. Paying a freelancer once a quarter has a different risk profile than reimbursing a subsidiary every week. Document the business purpose in Beancount with metadata like payee, project, or invoicenumber so you can trace each transfer during reviews or audits.

Step 2: Compare the Main Transfer Options

Most cross-border transfers fall into three buckets. Evaluate each one based on speed, cost, and the level of documentation it provides for your ledger.

Bank Wire Transfers

Traditional bank wires ride the SWIFT network. They are reliable and deliver strong compliance records. Expect higher fixed fees (1515–50 USD per wire) and potential intermediary bank charges. They work best when:

  • You already have a relationship with the receiving bank.
  • The amount is large enough that fixed fees are a small percentage of the total.
  • You need a paper trail that satisfies auditors or investors.

In Beancount, capture wires with a two-step entry:

2025-09-10 * "Wire to Berlin Studio" "September design sprint"
Assets:Bank:Operating -2500.00 USD
Expenses:Professional-Services 2450.00 EUR @@ 2500.00 USD
Expenses:Bank-Fees 35.00 USD
Assets:Bank:Operating 15.00 USD

The example splits out bank fees and uses a cost basis notation to lock the EUR amount to the USD cash impact.

Fintech Payment Platforms

Specialized platforms designed for small businesses bundle competitive FX spreads with lower transfer fees. Many integrate with accounting tools or provide CSV exports you can import into Beancount. They are ideal when:

  • You pay multiple vendors in the same currency each month.
  • You want to lock in an exchange rate ahead of payroll or invoice runs.
  • You need automation hooks (APIs, webhooks) to reconcile payments quickly.

Record these transfers by importing the platform statement, then tag each posting with the platform name so you can trace disputes or chargebacks.

Multi-Currency Accounts and Digital Wallets

Holding balances in multiple currencies lets you pick the timing of conversions. Digital wallets shine when you receive and send money in the same foreign currency. Watch for:

  • Dormancy fees if balances sit unused.
  • Regulatory limits on business use in certain countries.
  • The need to mark-to-market balances at month-end in your Beancount ledger.

Model wallets as separate asset accounts per currency. Revalue them with a price directive so your balance sheet reflects current FX rates.

Step 3: Account for Exchange Rates and Fees

Every transfer includes at least two components: the amount you send and the cost to convert or deliver it. Break those costs apart in Beancount:

  • Use cost basis annotations (@@) or price directives (@) to lock in the exchange rate used for each transaction.
  • Post fees to Expenses:Bank-Fees or a dedicated Expenses:FX-Spread account so you can analyze them later.
  • If you use forward contracts or limit orders, add metadata (method: forward) to trace the hedge strategy.

Step 4: Build a Documentation Trail

International compliance requirements change frequently. Keep the following artifacts handy:

  1. Invoices or contracts that justify the transfer amount.
  2. Transfer confirmations with reference numbers and FX rates.
  3. Communications with the recipient about receipt of funds.

Attach these to your Beancount entries using document directives so auditors can follow the money without digging through email threads.

Step 5: Review and Reconcile Monthly

Cross-border transfers can take days to settle. Schedule a monthly reconciliation to match your Beancount ledger against bank or platform statements. Focus on:

  • Transfers still in transit at month-end.
  • FX gains or losses on multi-currency balances.
  • Fees that creep up over time and warrant a pricing review.

Checklist Before You Hit Send

  • Confirm the recipient’s banking details or wallet address.
  • Validate the transfer limit with your bank or platform.
  • Capture the projected FX rate and total cost in Beancount.
  • Queue up supporting documents for compliance.

Staying methodical keeps international payments from turning into a reconciliation nightmare. By choosing the rail that matches your speed, cost, and documentation needs—and by capturing every detail in Beancount—you build a ledger that stays audit-ready no matter where your money travels.