The French payment landscape, and where it gets thin
France is one of the larger e-commerce and SaaS markets in the EU, with a deep base of software companies, agencies, and digital-service businesses selling well beyond their borders. Most everyday money movement is well served: domestic and intra-EU transfers run over SEPA, which is cheap, fast, and familiar to every finance team in the country. A French business invoicing a French customer rarely needs anything else.
The thinness shows up at the borders of that system. SEPA is a euro rail — it does the wrong job, or no job, when the counterparty sits outside the SEPA area, holds another currency, or simply prefers to pay from a wallet. Cross-border card acceptance brings its own drag: international cards decline more often, carry a currency conversion the customer notices, and expose the merchant to chargebacks that can land weeks after a digital product was delivered.
There is also a payout side that traditional rails handle poorly. French software and agency businesses increasingly work with developers, designers, and contractors in other countries, and paying them over a bank wire is slow and expensive once the recipient is outside SEPA. That is why French merchants commonly price in EUR but want to settle in stablecoins — a dollar-pegged balance is far easier to send to a contractor in another timezone than a euro bank transfer that takes days and skims fees at every hop.
Which assets fit a euro-priced business
For a business that thinks in euros, the asset that fits best is the one whose value does not move between checkout and confirmation. Dollar-pegged stablecoins — USDT and USDC — are the common case: the customer pays a stable amount and the merchant receives a stable amount, with no exposure to a swinging market in the minutes a payment takes to confirm. halfin anchors each invoice to your fiat figure and locks the quote when the invoice activates, so a EUR-priced order owes a fixed crypto amount even if the asset's price drifts while the customer is paying.
Where the customer holds those stablecoins decides the network. USDT settles on Tron, Ethereum, or Solana; USDC on Ethereum, Base, or Solana. A French merchant does not have to pick one — you enable the networks your customers actually use and let each customer pay on the rail they already hold funds on. Bitcoin stays available for customers who prefer to pay in BTC, with the same fiat-anchored invoice and the same reorg-aware crediting before a payment counts as settled.
On your side, the spread of incoming assets does not have to stay scattered. Balance conversion consolidates what arrives — BTC, SOL, a mix of stablecoins — into the asset you want to hold as your reserve, automatically on a policy you set or manually when you decide to rebalance. A euro-priced business that wants to sit mostly in a dollar stablecoin so it can pay contractors abroad can do that without managing each balance by hand.
- Price in EUR; the invoice locks a fixed crypto amount at activation, so the customer is not exposed to price movement mid-payment.
- USDT on Tron, Ethereum, or Solana; USDC on Ethereum, Base, or Solana — enable what your customers hold.
- Bitcoin for customers who pay in BTC, same fiat-anchored invoice and confirmation rules.
- Balance conversion consolidates a mixed inflow into the reserve asset you choose to hold for payouts.
Verticals that reach for this in France
The patterns that pull French businesses toward a crypto rail are the ones where the existing system leaves money on the table — or off the table entirely. None of these are exotic; they are ordinary businesses hitting the cross-border, chargeback, or acquirer-risk edges described above.
SaaS and digital-service businesses are the broadest case here. A French SaaS company billing subscribers in and outside the EU wants final settlement for something delivered instantly that cannot be shipped back when a card later reverses, and it wants to bill machine-to-machine where a human-facing checkout does not fit. The same companies are usually buyers of cross-border labour too — they want to pay the developers, designers, and freelancers they work with abroad quickly, in a stable asset, without each wire crawling through correspondent banks.
- SaaS and subscription businesses billing customers in and outside the EU, where machine-to-machine settlement moves value without a human-facing checkout in the loop.
- Software companies and agencies paying developers, designers, and contractors abroad — stablecoin payouts settle faster and cheaper than a cross-border bank wire.
- Digital goods, software, top-ups, and licences — instant, final settlement for things with nothing to ship back if a card payment later reverses.
- Online stores and marketplaces selling beyond the SEPA area, where international card decline rates and cross-border fees cost real conversions.
- High-risk and underserved verticals that card acquirers treat cautiously but that still need a reliable way to get paid.
How halfin fits the existing setup
halfin sits alongside what a French business already runs; it does not replace the euro accounting or the SEPA flows that work. You create an invoice anchored to your EUR price, redirect the customer to the hosted checkout page — which handles the wallet, the network choice, the QR code, and live status — and wait for one HMAC-signed webhook before you treat the order as paid. The on-chain detail stays on halfin's side; your billing system keeps its existing shape.
For automated commerce — a subscription platform, a metered billing service, a system that pays another system — machine-to-machine settlement moves value programmatically without a checkout page in the loop. Static deposit addresses give you a persistent receive address when you would rather hand out one address than mint an invoice each time. On the outbound side, single payouts cover a one-off send with operator review, and mass payouts batch many destinations into one idempotent run — submitting the same batch twice does not pay twice — which is exactly what a software company paying a roster of contractors at the end of the month needs.
Treat the customer's redirect back to your success page as cosmetic and the signed webhook as authoritative: a customer can pay and close the tab before the redirect fires, but the webhook still arrives. Always verify the signature before acting on it. If you ever need to return funds, refunds run as a first-class flow against the original invoice rather than an ad-hoc manual send.
- Create an invoice anchored to your EUR price; the rate locks at activation and expiry is enforced.
- Hosted checkout handles wallet, network, QR, and live status — no on-chain code on your side.
- A signed webhook is the source of truth for marking an order paid; verify the HMAC first.
- Mass payouts settle a roster of contractors in one idempotent batch; refunds run against the original invoice.
curl -X POST https://api.thehalfin.com/api/v1/invoices \
-H "X-API-Key: $HALFIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount_fiat": "49.00",
"fiat_currency": "EUR",
"idempotency_key": "order-FR-30714"
}'
# The EUR amount anchors the order; the customer settles in the
# crypto asset they pick on the hosted checkout page returned in
# the response. Redirect the customer there, then verify the
# signed invoice webhook before releasing the order. See the full
# request and response schema at docs.thehalfin.com.Compliance and availability — a rail, not a licence
A French business taking crypto still owns its own obligations. halfin is payment infrastructure: it collects payments, executes payouts, keeps payment records, and exposes status through dashboard data and signed webhooks. It does not take over the merchant's customer onboarding, its bookkeeping, its tax handling, or any approval the goods or services themselves require under local rules. Nothing on this page is legal, tax, or financial advice, and halfin makes no claim to be registered or licensed in France or anywhere else.
Onboarding to halfin involves KYB — verifying the business behind the merchant account — and the platform operates with AML awareness as a process. The travel rule, which concerns information that travels with certain transfers, is a concept to understand as you design flows, not a certificate halfin issues. The practical pattern for a French merchant is to keep your own customer checks, your own counterparty and wallet screening, and your own record of which order or contractor each invoice and payout belongs to; halfin gives you the payment primitives and the audit trail, and you keep the decisions about who you serve and whom you pay.
Availability is subject to jurisdiction and sanctions screening, and some places are out of scope regardless of demand — see the restricted-countries note for where halfin cannot operate. If your business is based in France and serves customers and contractors across the EU and beyond, the relevant question is which networks and assets the people you transact with actually use, and how you want incoming balances to settle.
- KYB onboarding verifies the business behind the merchant account.
- AML awareness is a process, not a status halfin grants — and halfin is not 'licensed' in any country.
- Keep your own customer and contractor checks, screening, and per-order records as the source of truth.
- Availability is subject to jurisdiction and sanctions screening; see the restricted-countries note.