# Web Sitenizde Kripto Ödemelerini Nasıl Kabul Edersiniz

> Web sitenize veya uygulamanıza kripto ödemeleri eklemenin pratik rehberi. Altyapı seçiminden ilk API çağrınıza kadar.

Source: https://mutopay.com/tr/blog/how-to-accept-crypto-payments/
Language: tr
Date: 2026-03-17

---

Web sitenizde kripto kabul etmek mi istiyorsunuz? İyi haber: düşündüğünüzden daha basit. Kötü haber: çoğu rehber konuyu gereksiz yere karmaşıklaştırıyor. İşte lafı dolandırmayan versiyonu.

## Gerçekten Neye İhtiyacınız Var

Kendi düğümünüzü çalıştırmayı veya cüzdanları elle yönetmeyi unutun. Bir kripto ödeme altyapısı zor kısımları halleder: ödeme adresleri oluşturma, blok zincirlerini onay için izleme ve token dönüştürme.

Üç şeye ihtiyacınız var:
1. Fonları almak için bir cüzdan adresi
2. API'si olan bir ödeme altyapısı
3. Yaklaşık 20 dakika

## Adım 1: Ödeme Para Biriminizi Seçin

Önemli olan ilk karar budur. ETH mi almak istiyorsunuz? USDC mi? Bir karışım mı?

Çoğu satıcı stablecoin (USDC, USDT, DAI) tercih eder çünkü değeri bir gecede %10 dalgalanmaz. MutoPay ile müşterileriniz herhangi bir tokenle ödeme yapabilir, ama siz her zaman seçtiğiniz stablecoini alırsınız. Sorun daha başlamadan çözüldü.

## Adım 2: Kanal Oluşturun ve API Anahtarınızı Alın

[MutoPay panelinizde](/dashboard) Ayarlar → Kanallar'a gidin ve **+ Yeni kanal**'a tıklayın. Bir isim verin (örn. "Web Sitem") ve isteğe bağlı olarak bir webhook URL'si ekleyin. API anahtarınız (`ep_...` öneki) bir kez gösterilir, kopyalayın.

Bu anahtar kanalınızı tanımlar ve API çağrılarınızı doğrular. Her kanalın kendi anahtarı, webhook URL'si vardır ve kendi ödeme hedefine sahip olabilir.

## Adım 3: Ödeme Oluşturun

Tek bir API çağrısı. Hepsi bu.

```bash
curl -X POST https://mutopay.com/api/payments \
  -H "X-API-Key: ep_your_channel_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "amount_usd": 50.00,
    "description": "Sipariş #1234, Mavi Widget",
    "external_id": "order_1234",
    "callback_url": "https://yoursite.com/order/1234/complete"
  }'
```

Bir `id` içeren ödeme nesnesi alırsınız. Müşterinizi `mutopay.com/pay/{id}` adresine yönlendirin.

**Kullanabileceğiniz alanlar:**

| Alan | Açıklama |
|------|----------|
| `amount_usd` | USD cinsinden tutar |
| `amount` | Başka bir para biriminde tutar (`currency` ile kullanın) |
| `currency` | USD değilse para birimi kodu (örn. `EUR`, `GBP`) |
| `description` | Ödeme sayfasında müşteriye gösterilir |
| `external_id` | Dahili referansınız (örn. sipariş ID) |
| `callback_url` | Ödeme sonrası müşterinin yönlendirileceği URL |
| `metadata` | Kendi kullanımınız için keyfi JSON |
| `expires_in_minutes` | 15 ile 10080 arası (7 gün); varsayılan 60 |

`amount_usd` veya `amount` + `currency` kullanın, ikisini birden değil.

## Adım 4: Webhook'u İşleyin

Ödeme tamamlandığında (veya başarısız olduğunda ya da süresi dolduğunda), MutoPay kanalınızın webhook URL'sine bir POST gönderir. Payload size her şeyi söyler:

```json
{
  "event": "payment.completed",
  "payment_id": "pay_abc123",
  "status": "completed",
  "amount_usd": 50.00,
  "currency": "USD",
  "dest_token": "USDC",
  "dest_chain_id": "137",
  "dest_amount": "50000000",
  "dest_decimals": 6,
  "external_id": "order_1234",
  "tx_hash": "0xabc...",
  "completed_at": "2026-04-12T14:30:00Z",
  "timestamp": "2026-04-12T14:30:01Z"
}
```

**İmzayı doğrulayın.** Her webhook, ham JSON gövdesinin HMAC-SHA256 hash'ini içeren bir `X-MutoPay-Signature` başlığı taşır (kanalınızın webhook secret'ı ile imzalanmış; panelinizde görünür). Format: `sha256=<hex>`.

**Ödeme tutarını okuyun.** `dest_amount` ham token birimlerindedir. Okunabilir rakam için `10^dest_decimals` ile bölün. Yukarıdaki örnekte: `50000000 / 10^6 = 50.00 USDC`.

Webhook olayları: `payment.completed`, `payment.failed`, `payment.expired`, `payment.underpaid`, `payment.kyc_required`, `payment.needs_manual_check`.

Başarısız teslimatlar üstel geri çekilme ile 5 kez yeniden denenir (1 dk → 5 dk → 30 dk → 2 saat → 12 saat).

## Adım 5: Müşteriye Ödeme Sayfası Gösterin

İki seçeneğiniz var:

**Yönlendirme**: müşterinizi `mutopay.com/pay/{id}` adresindeki barındırılan ödeme sayfasına gönderin. Tokenlerini seçerler, cüzdanlarını bağlarlar ve ödeme yaparlar. Sizin tarafınızda sıfır frontend çalışması. Mobil müşteriler kolay depozit için QR kod görür.

**Polling**: ödeme kimliğini kullanarak kendi arayüzünüzü oluşturun. Hafif durum güncellemeleri için `GET /api/payments/{id}/status` çağırın.

Çoğu satıcı yönlendirme yaklaşımıyla başlar ve daha sonra özelleştirir.

## Sık Sorulan Sorular

**Müşteri farklı bir zincirdeki bir tokenle ödeme yaparsa ne olur?**
Altyapı zincirler arası köprülemeyi otomatik olarak halleder. Müşteri Arbitrum'da ARB ile öder, siz Polygon'da USDC alırsınız.

**İade nasıl yapılır?**
Kripto ödemeler protokol düzeyinde geri alınamaz. İadeleri, müşterinin cüzdanına ayrı bir işlem göndererek gerçekleştirin.

**Ödemeler ne kadar sürer?**
Doğrudan stablecoin transferleri saniyeler içinde onaylanır. Zincirler arası takaslar genellikle 2 dakikadan kısa sürede tamamlanır.

**Ücret nedir?**
MutoPay işlem başına %0,5 ücret alır. Aylık ücret yok, minimum tutar yok.

**Hangi zincirler destekleniyor?**
Ethereum, Polygon, Arbitrum, Base, Optimism, Avalanche, BSC, TON, Solana ve Tron. Müşteriler 10 zincirdeki 1.000'den fazla tokenle ödeme yapabilir.

## Sonraki Adımlar

Ödemeleri işlemeye başladıktan sonra şunları yapmak isteyeceksiniz:
- [Satıcı panelinizde](/dashboard) ödemeleri takip edin
- Ayarlar → Kanallar → Test Webhook'tan webhook entegrasyonunuzu test edin
- Bahşişler ve açık uçlu ödemeler için [Bana Öde bağlantısı](/tr/blog/pay-me-links/) ekleyin
- Çoklu marka veya çoklu müşteri kurulumları için [kanal yönetimini](/tr/blog/channel-management/) keşfedin

Tüm entegrasyon, daha önce API çalışması yapmış bir geliştirici için yaklaşık 20 dakika sürer. Blok zinciri bilgisi gerekmez.
