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.
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.
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
| Method | Where | Per 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
- Fund your KemyCard balance with USDC or USDT. Payouts and their fees are paid from it.
- 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. - Request a quote.
POST /v1/payouts/quotesreturns the fee and the total that will be debited, before anything moves. - Send it.
POST /v1/payoutswith the quote and your own reference. Sending the same request twice returns the existing payout instead of paying twice. - Reconcile with webhooks.
payout.processing, thenpayout.completed. If a transfer fails,payout.failedandpayout.refundedtell 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"
}'
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:
| Plan | Price | ACH / SEPA Instant | RTP 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.
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.