# Accept Ethereum payments

> Accept Ethereum (ETH) with CryptoLike: a fresh 0x address per payment, a hosted payment page, credit after confirmations and a signed webhook to your server.

Source: https://cryptolike.net/coins/ethereum
Updated: 2026-09-24

CryptoLike credits an Ethereum payment to your balance after 12 confirmations of the Ethereum network and reports it to your server with a signed webhook. You create the payment; the payer sends ETH from their own wallet to a fresh address; CryptoLike watches the address, counts confirmations and moves the status from `pending` to `paid`.

## How an Ethereum payment works

An Ethereum payment in CryptoLike goes through four steps and three statuses: `new`, `pending` and `paid`. The payment page, the API and the webhooks show the same status string, so your order logic reads one field. The payer needs no account with CryptoLike, only an Ethereum wallet with enough ETH for the amount and the gas.

1. **You create the payment** with `POST /v1/invoices`, the [WooCommerce plugin](https://cryptolike.net/integrations/woocommerce), the [Magento 2 module](https://cryptolike.net/integrations/magento) or a [payment link](https://cryptolike.net/use-cases/payment-links). Status: `new`.
2. **The payer sees what to send:** the exact ETH amount, the network (Ethereum), the address with a QR code and the time left.
3. **The transfer is detected.** Status: `pending`, "Payment detected. Waiting for confirmation."
4. **The payment is confirmed.** After 12 confirmations the status is `paid`, the funds are on your balance and a signed `invoice.paid` [webhook](https://cryptolike.net/docs/webhooks) arrives.

## What the payer should know about Ethereum

CryptoLike gives every Ethereum payment its own address that starts with `0x` and is never reused. The payer's wallet pays the network fee, called gas, in ETH on top of the amount. CryptoLike detects a direct ETH transfer from a regular wallet; ETH moved by a smart contract, as some contract wallets and batched exchange withdrawals do, is not detected automatically.

- **Address.** `0x` followed by 40 hexadecimal characters. Other EVM-compatible networks use the same format, so check the network name on the page, not only the address.
- **Network fee.** Gas is paid in ETH and changes with network load; the wallet shows it before sending.
- **Only ETH counts.** An ETH payment is paid in ETH. To pay in USDT or USDC, the payer needs a payment for [USDT (ERC20)](https://cryptolike.net/coins/usdt-erc20) or [USDC (ERC20)](https://cryptolike.net/coins/usdc-erc20).
- **Exact amount.** If an exchange deducts its withdrawal fee, the payment arrives short and becomes `underpaid`. Send the difference to the same address before the time runs out.
- **Network.** ETH sent on another network never reaches the payment and cannot be recovered.

## Create an Ethereum payment

To create an Ethereum payment in CryptoLike, take the `id` of the asset with `ticker` ETH and `network` eth from `GET /v1/currencies` and pass it as `coin_id` to `POST /v1/invoices`. Price it in ETH, as in the example, or in USD or EUR: then CryptoLike converts at the current rate and locks the rate for the payment's time limit.

```bash
COIN_ID=$(curl -s https://api.cryptolike.net/v1/currencies \
  | jq -r '.currencies[] | select(.ticker=="ETH" and .network=="eth") | .id')

BODY='{"amount":"0.05","currency":"ETH","coin_id":"'"$COIN_ID"'","order_id":"A-1005"}'
curl -s https://api.cryptolike.net/v1/invoices \
  -H "Content-Type: application/json" -H "Idempotency-Key: order-A-1005" \
  -H "X-API-Key: $KEY_ID" -H "X-Timestamp: $TS" -H "X-Signature: $SIG" -d "$BODY"
```

The response carries `address`, `payer_amount` and `checkout_url`: send the payer there. Signing: [API authentication](https://cryptolike.net/docs/auth); every field: [API reference](https://cryptolike.net/docs/api).

## FAQ

### How many confirmations does an Ethereum payment need?

CryptoLike credits ETH after 12 confirmations of the Ethereum network. The threshold is set per asset, returned in `GET /v1/currencies` and shown to the payer as progress. More on [confirmations](https://cryptolike.net/glossary/confirmations).

### What if the payer sends ETH on another network?

The transfer does not reach this payment and cannot be recovered: an Ethereum payment watches its address on Ethereum mainnet only. If the time has run out, create a new payment.

### What if the payer pays from a smart-contract wallet?

A transfer made by a smart contract is not picked up automatically, so the status stays `new`. Ask the payer to send from a regular wallet address. If a contract transfer has already been made, contact support with the transaction id.

### Can I price in USD?

Yes. Send `currency: "USD"` with the ETH `coin_id`: CryptoLike converts at the current rate and locks it for the payment's time limit. If no fresh rate is available, the API answers `503`: retry, or price the payment in ETH.

### How do Ethereum payouts work?

`POST /v1/withdrawals` with `coin_id`, `amount`, `to_address` and your `payout_id`, or a CSV of up to 1,000 rows in the cabinet ([mass payouts](https://cryptolike.net/use-cases/mass-payouts)). `POST /v1/withdrawals/estimate` first shows the platform fee, the reserved network fee and the total debit. Payouts require a verified account; fees are on the [pricing page](https://cryptolike.net/pricing).
