Payroll & remittances

How to pay contractors in Europe and the US from a stablecoin balance

Send salaries and invoices by SEPA Instant or ACH from the USDC or USDT you already hold, with one API call per transfer.

PayoutsWallets Published October 16, 2026 · KemyCard team
How to pay contractors in Europe and the US from a stablecoin balance: flow diagram with the KemyCard API
Best fit

Payroll tools, Employer of Record platforms, agencies and remote-first companies that hold USDC or USDT and pay people in Europe or the United States.

Next step

Register a test beneficiary with an IBAN, request a quote and send it in the sandbox. Watch payout.completed arrive.

Your treasury is in stablecoins, but your contractors are paid in euros and dollars, on a bank account. Usually that means an exchange account, a manual withdrawal, a bank transfer per person, and a spreadsheet to reconcile it all.

The KemyCard Payouts API replaces that chain with one call per payment: you send the recipient's bank details and the amount, the money lands on their account by SEPA Instant in Europe or ACH in the United States, and every step comes back to you as a signed webhook.

Available payout methods

MethodWherePer transfer
ACH US Standard United States, every US bank $100 to $2,499
SEPA Instant EU 27 EU countries, credited within seconds $25 to $2,499
RTP US Instant United States, credited within seconds $100 to $2,499

How it works

  1. Fund your KemyCard balance with USDC or USDT. Payouts and their fees are paid from it.
  2. Register each contractor once. Create them as a customer, verify their identity, then save their bank account with POST /v1/payouts/beneficiaries: IBAN and BIC for SEPA, account and routing number for ACH.
  3. Request a quote. POST /v1/payouts/quotes returns the fee and the total that will be debited, before anything moves.
  4. Send it. POST /v1/payouts with the quote and your own reference. Sending the same request twice returns the existing payout instead of paying twice.
  5. Reconcile with webhooks. payout.processing, then payout.completed. If a transfer fails, payout.failed and payout.refunded tell you the amount went back to your balance.
# 1. Quote: see the fee and the total before sending
curl https://api.kemycard.com/v1/payouts/quotes \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{
    "customer_code": "CUSTOMER_CODE",
    "beneficiary_code": "BENEFICIARY_CODE",
    "amount_usd": 1500
  }'

# 2. Send: your reference makes the call safe to retry
curl https://api.kemycard.com/v1/payouts \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{
    "quote_code": "QUOTE_CODE",
    "reference": "invoice-2026-10-0042"
  }'
Use your invoice or payslip number as reference: it is unique per partner, so a retry after a timeout never creates a second transfer, and your accounting matches line by line.

Who can be paid

Payouts are reserved for customers who passed identity verification (KYC Level 2). Paid plans have no monthly cap. On the free Découverte plan, payouts are included up to $5,000 per month, enough to run a real pilot with your first contractors.

Fees by plan

Fees per transfer, read live from our pricing:

PlanPriceACH / SEPA InstantRTP Instant
Découverte $0/mo $6 + 2.5%—
Starter $750/mo $5 + 2%$7 + 2%
Business $999/mo $5 + 1.75%$7 + 1.75%
Premium $1,999/mo $5 + 1.5%$7 + 1.5%

Why it fits payroll

  • No bank account to open in each country and no correspondent bank to negotiate with.
  • Known cost before sending: the quote gives the exact fee and total.
  • Automatic reconciliation: your reference and the webhooks map each transfer to its invoice.

Read the full payouts guide for every field and error code.

Start free

Build this on the free Découverte plan

No monthly fee to start, an unlimited sandbox with test keys, and the same API you will use in production. Upgrade only when your volume grows.

More use cases