# Kripto ile bakiye yükleme

> LocalSERP Proxy API: kriptoyla bakiye yükleme, tam tutar, ödeme gönderildi bildirimi (TXID isteğe bağlı) ve durum. Parametreler, örnek yanıtlar, curl, Python ve Node.js kodu.

- URL: https://localserpproxy.com/tr/docs/api/top-ups/
- Son güncelleme: 2026-10-15
- Publisher: LocalSERP Proxy (https://localserpproxy.com)

Bakiyenizi kripto ile yükleyin: yatırma adresini ve tam tutarı alın, tam olarak bu tutarı gönderin, ödemenin gönderildiğini bildirin (işlem kimliği isteğe bağlıdır), ardından bakiye hesabınıza aktarılana kadar yükleme işlemini takip edin. Bakiye, planlarımızdan herhangi birinin ödemesinde kullanılabilir.

**Bu sayfadaki uç noktalar**

- `GET /v1/catalog/coins`: Kabul edilen kripto paralar ve ağlar (sabit yatırma adresleriyle)
- `POST /v1/topups`: Bakiyeye kriptoyla yükleme başlatın (sabit adres, tam tutar)
- `POST /v1/topups/{topUpId}/txid`: Ödemenin gönderildiğini bildirin (TXID isteğe bağlı)
- `GET /v1/topups/{topUpId}`: Bakiye yükleme kaydını getirin (güncel durumu kontrol edin)
- `GET /v1/topups`: Kripto bakiye yükleme kayıtlarını listeleyin

Temel URL `https://localserpproxy.com/api/v1`. Kimlik doğrulama, hatalar ve limitler için [API genel bakışına](https://localserpproxy.com/tr/docs/api/) bakın.

## Kabul edilen kripto para birimleri ve ağlar (sabit yatırma adresleriyle)

`GET /v1/catalog/coins`

Herkese açık: API anahtarı gerekmez.

**Yanıt** `200 OK`

```json
{
  "data": [
    {
      "code": "BTC",
      "name": "Bitcoin",
      "networks": [
        {
          "id": "bitcoin",
          "name": "Bitcoin",
          "confirmationsRequired": 2,
          "estimatedMinutes": null,
          "memoRequired": false,
          "address": "DEPOSIT_ADDRESS"
        }
      ]
    }
  ]
}
```

*curl*

```bash
curl -s "https://localserpproxy.com/api/v1/catalog/coins"
```

*Python*

```python
import os
import requests

API = "https://localserpproxy.com/api/v1"

r = requests.get(f"{API}/catalog/coins", timeout=30)
r.raise_for_status()
print(r.json())
```

*Node.js*

```javascript
// Node.js 18+ (built-in fetch), ES module
const API = 'https://localserpproxy.com/api/v1';

const res = await fetch(`${API}/catalog/coins`);
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());
```

## Bakiyeye kripto para yükleme işlemi başlatın (sabit adres, tam tutar)

`POST /v1/topups`

- `amountUsd` ≥ 25.00 USD ve varsayılan olarak en fazla 10,000.00 USD: aksi belirtilmedikçe `amountUsd` tarihinde `422`.
- `coin` + `network`, aksi belirtilmedikçe `GET /v1/catalog/coins` (`409 coin_unavailable`) seçeneklerinden biri olmalıdır.
- Ağın **sabit** `address` adresini ve coin hassasiyetine göre **yukarı** yuvarlanmış tam `amountCrypto` = `amountUsd` / `rate` tutarını (BTC/LTC/ETH/SOL için 8, USDT/USDC için 6 ondalık basamak) döndürür. Ayrıca aynı ağda açık olan iki yükleme için aynı tutarın istenmemesi amacıyla son basamaklara küçük, benzersiz bir fark eklenir. `rate`, `expiresAt` tarihine kadar (30 dakika) kilitlenir; `txidDeadline` = `expiresAt` + 72 saat.
- İsteğe bağlı `purchase` (`POST /v1/orders` ile aynı gövde): şimdi doğrulanır ve fiyatlandırılır (`422`; alan adlarının başına `purchase.`, `409 plan_unavailable`… eklenir). `amountUsd`, toplam `purchase` tutarından mevcut bakiye çıkarıldığında kalan tutarı karşılamalıdır (`amountUsd` tarihinde `422 too_small`). Yükleme bakiyeye işlendiğinde sipariş aynı işlem içinde bakiyeden oluşturulur; `purchase.status`, `orderId` ile birlikte `completed` veya `failureReason` (`failed`; tutar bakiyede kalır) olur.

Kimlik doğrulama: `Authorization: Bearer API_KEY` başlığında API anahtarı.

**Parametreler**

| Ad | Konum | Tür | Zorunlu | Açıklama |
| --- | --- | --- | --- | --- |
| `Idempotency-Key` | header | string | Hayır | POST isteğini güvenle yeniden denemek için benzersiz anahtar (ör. UUID). 24 saat saklanır. — en fazla 128 karakter |

**İstek gövdesi**

| Alan | Tür | Zorunlu | Açıklama |
| --- | --- | --- | --- |
| `amountUsd` | string (USD, 2 decimals) | Evet | Eklenecek USD tutarı: en az 25.00, varsayılan olarak en fazla 10,000.00. |
| `coin` | string | Evet | — |
| `network` | string | Evet | — |
| `purchase` | object | Hayır | Yükleme bakiyeye işlendiğinde bakiyeden satın alınacak plan (`POST /v1/orders` ile aynı gövde). |

*Örnek: Bakiye*

```json
{
  "amountUsd": "50.00",
  "coin": "USDT",
  "network": "tron"
}
```

*Örnek: Ödeme*

```json
{
  "amountUsd": "25.00",
  "coin": "BTC",
  "network": "bitcoin",
  "purchase": {
    "planId": "res-10",
    "quantity": 1
  }
}
```

**Yanıt** `201 Created`

```json
{
  "id": "top_7d2kq9x1",
  "status": "verifying",
  "final": false,
  "amountUsd": "25.00",
  "coin": "USDT",
  "network": "tron",
  "address": "DEPOSIT_ADDRESS",
  "amountCrypto": "25.000137",
  "rate": "1.00",
  "paymentUri": "PAYMENT_URI",
  "expiresAt": "2026-10-05T14:33:11Z",
  "txidDeadline": "2026-10-08T14:33:11Z",
  "confirmationsRequired": 20,
  "confirmations": 7,
  "txid": "9d2e5c0b1f7a4e3d8c6b2a1f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f41c7",
  "txidSubmittedAt": "2026-10-05T14:09:42Z",
  "amountReceivedCrypto": "25.000137",
  "explorerUrl": "https://tronscan.org/#/transaction/9d2e5c0b1f7a4e3d8c6b2a1f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f41c7",
  "creditedUsd": null,
  "creditedAt": null,
  "rejection": null,
  "purchase": {
    "planId": "res-10",
    "planName": "Local team",
    "quantity": 1,
    "options": {},
    "promoCode": null,
    "total": "7.50",
    "status": "pending",
    "orderId": null,
    "failureReason": null
  },
  "createdAt": "2026-10-05T14:03:11Z"
}
```

*curl*

```bash
curl -s -X POST "https://localserpproxy.com/api/v1/topups" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"amountUsd":"50.00","coin":"USDT","network":"tron"}'
```

*Python*

```python
import os, uuid
import requests

API = "https://localserpproxy.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}", "Idempotency-Key": str(uuid.uuid4())}

r = requests.post(f"{API}/topups", headers=HEADERS, json={"amountUsd": "50.00", "coin": "USDT", "network": "tron"}, timeout=30)
r.raise_for_status()
print(r.json())
```

*Node.js*

```javascript
// Node.js 18+ (built-in fetch), ES module
import { randomUUID } from 'node:crypto';

const API = 'https://localserpproxy.com/api/v1';

const res = await fetch(`${API}/topups`, {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.API_KEY}`, 'Idempotency-Key': randomUUID(), 'Content-Type': 'application/json' },
  body: JSON.stringify({ amountUsd: '50.00', coin: 'USDT', network: 'tron' }),
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());
```

## Ödemeyi gönderildi olarak bildirin (TXID isteğe bağlı)

`POST /v1/topups/{topUpId}/txid`

Ödeme cüzdanınızdan veya borsanızdan çıktıktan sonra gönderildi olarak bildirin: bu, API üzerinden “Ödemeyi gönderdim” düğmesini kullanmaya karşılık gelir. İşlem kimliği (TXID) isteğe bağlıdır: boş bir gövde gönderin (`{}`) veya varsa `txid` ekleyin. Ödemeniz, yüklemenin ağında ve adresinde tam tutarına (`amountCrypto`) göre bu yüklemeyle eşleştirilir; bu nedenle tam olarak belirtilen tutarı gönderin.

Yükleme `awaiting_payment`, `expired` veya `rejected` durumundayken ve `txidDeadline` tarihinden önce kabul edilir (`expiresAt` + 72 saat): geç bildirim, ödemenin kaybolmasına neden olmaz. Varsa `txid`, ağın biçimine göre kontrol edilir (`txid` üzerinde `422`) ve başka bir yüklemeye ait olarak bildirilmemiş olmalıdır (`409 txid_already_used`). Kapatılmış bir yükleme `409 topup_closed` döndürür. Ardından ödeme blok zincirinde kontrol edilirken yükleme `verifying` durumuna geçer; ağ işlemi onayladığında `credited`, aksi durumda `rejection` ile birlikte `rejected` olur.

Kimlik doğrulama: `Authorization: Bearer API_KEY` başlığında API anahtarı.

**Parametreler**

| Ad | Konum | Tür | Zorunlu | Açıklama |
| --- | --- | --- | --- | --- |
| `topUpId` | path | string | Evet | — |

**İstek gövdesi**

| Alan | Tür | Zorunlu | Açıklama |
| --- | --- | --- | --- |
| `txid` | string | Hayır | İsteğe bağlı. İşlem hash'i: 64 hex karakter (bitcoin, litecoin, tron), 0x + 64 hex karakter (ethereum), base58 imzası (solana). Boş bırakılırsa veya gönderilmezse ödeme tam tutarına göre eşleştirilir. — en fazla 128 karakter |

*Örnek: Ödeme gönderildi*

```json
{}
```

*Örnek: TXID ile (isteğe bağlı)*

```json
{
  "txid": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"
}
```

**Yanıt** `200 OK`

```json
{
  "id": "top_7d2kq9x1",
  "status": "verifying",
  "final": false,
  "amountUsd": "25.00",
  "coin": "USDT",
  "network": "tron",
  "address": "DEPOSIT_ADDRESS",
  "amountCrypto": "25.000137",
  "rate": "1.00",
  "paymentUri": "PAYMENT_URI",
  "expiresAt": "2026-10-05T14:33:11Z",
  "txidDeadline": "2026-10-08T14:33:11Z",
  "confirmationsRequired": 20,
  "confirmations": 7,
  "txid": "9d2e5c0b1f7a4e3d8c6b2a1f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f41c7",
  "txidSubmittedAt": "2026-10-05T14:09:42Z",
  "amountReceivedCrypto": "25.000137",
  "explorerUrl": "https://tronscan.org/#/transaction/9d2e5c0b1f7a4e3d8c6b2a1f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f41c7",
  "creditedUsd": null,
  "creditedAt": null,
  "rejection": null,
  "purchase": {
    "planId": "res-10",
    "planName": "Local team",
    "quantity": 1,
    "options": {},
    "promoCode": null,
    "total": "7.50",
    "status": "pending",
    "orderId": null,
    "failureReason": null
  },
  "createdAt": "2026-10-05T14:03:11Z"
}
```

*curl*

```bash
curl -s -X POST "https://localserpproxy.com/api/v1/topups/top_7d2kq9x1/txid" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

*Python*

```python
import os
import requests

API = "https://localserpproxy.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}

r = requests.post(f"{API}/topups/top_7d2kq9x1/txid", headers=HEADERS, json={}, timeout=30)
r.raise_for_status()
print(r.json())
```

*Node.js*

```javascript
// Node.js 18+ (built-in fetch), ES module
const API = 'https://localserpproxy.com/api/v1';

const res = await fetch(`${API}/topups/top_7d2kq9x1/txid`, {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.API_KEY}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({}),
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());
```

## Bakiye yükleme oluştur (canlı durumunu sorgula)

`GET /v1/topups/{topUpId}`

Bakiye yüklemesini takip etmek için bu rotayı sorgulayın: `status = verifying` boyunca her 10 saniyede, ödeme beklerken her 30 saniyede bir ve `final = true` olduğunda durdurun. Ödeme gönderildi olarak `expiresAt` öncesinde bildirilmediyse bakiye yüklemesi `expired` olur; ödeme `txidDeadline` tarihine kadar gönderildi olarak bildirilebilir.

Kimlik doğrulama: `Authorization: Bearer API_KEY` başlığında API anahtarı.

**Parametreler**

| Ad | Konum | Tür | Zorunlu | Açıklama |
| --- | --- | --- | --- | --- |
| `topUpId` | path | string | Evet | — |

**Yanıt** `200 OK`

```json
{
  "id": "top_7d2kq9x1",
  "status": "verifying",
  "final": false,
  "amountUsd": "25.00",
  "coin": "USDT",
  "network": "tron",
  "address": "DEPOSIT_ADDRESS",
  "amountCrypto": "25.000137",
  "rate": "1.00",
  "paymentUri": "PAYMENT_URI",
  "expiresAt": "2026-10-05T14:33:11Z",
  "txidDeadline": "2026-10-08T14:33:11Z",
  "confirmationsRequired": 20,
  "confirmations": 7,
  "txid": "9d2e5c0b1f7a4e3d8c6b2a1f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f41c7",
  "txidSubmittedAt": "2026-10-05T14:09:42Z",
  "amountReceivedCrypto": "25.000137",
  "explorerUrl": "https://tronscan.org/#/transaction/9d2e5c0b1f7a4e3d8c6b2a1f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f41c7",
  "creditedUsd": null,
  "creditedAt": null,
  "rejection": null,
  "purchase": {
    "planId": "res-10",
    "planName": "Local team",
    "quantity": 1,
    "options": {},
    "promoCode": null,
    "total": "7.50",
    "status": "pending",
    "orderId": null,
    "failureReason": null
  },
  "createdAt": "2026-10-05T14:03:11Z"
}
```

*curl*

```bash
curl -s "https://localserpproxy.com/api/v1/topups/top_7d2kq9x1" \
  -H "Authorization: Bearer $API_KEY"
```

*Python*

```python
import os
import requests

API = "https://localserpproxy.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}

r = requests.get(f"{API}/topups/top_7d2kq9x1", headers=HEADERS, timeout=30)
r.raise_for_status()
print(r.json())
```

*Node.js*

```javascript
// Node.js 18+ (built-in fetch), ES module
const API = 'https://localserpproxy.com/api/v1';

const res = await fetch(`${API}/topups/top_7d2kq9x1`, {
  headers: { Authorization: `Bearer ${process.env.API_KEY}` },
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());
```

## Kripto ile yapılan bakiye yüklemelerini listele

`GET /v1/topups`

Kimlik doğrulama: `Authorization: Bearer API_KEY` başlığında API anahtarı.

**Parametreler**

| Ad | Konum | Tür | Zorunlu | Açıklama |
| --- | --- | --- | --- | --- |
| `page` | query | integer | Hayır | ≥ 1, varsayılan `1` |
| `perPage` | query | integer | Hayır | 1–100, varsayılan `20` |
| `status` | query | `awaiting_payment` · `verifying` · `credited` · `rejected` · `expired` | Hayır | `final` = bakiyeye eklendi veya `txidDeadline` sonrasında süresi doldu / reddedildi. |

**Yanıt** `200 OK`

```json
{
  "data": [
    {
      "id": "top_7d2kq9x1",
      "status": "verifying",
      "final": false,
      "amountUsd": "25.00",
      "coin": "USDT",
      "network": "tron",
      "address": "DEPOSIT_ADDRESS",
      "amountCrypto": "25.000137",
      "rate": "1.00",
      "paymentUri": "PAYMENT_URI",
      "expiresAt": "2026-10-05T14:33:11Z",
      "txidDeadline": "2026-10-08T14:33:11Z",
      "confirmationsRequired": 20,
      "confirmations": 7,
      "txid": "9d2e5c0b1f7a4e3d8c6b2a1f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f41c7",
      "txidSubmittedAt": "2026-10-05T14:09:42Z",
      "amountReceivedCrypto": "25.000137",
      "explorerUrl": "https://tronscan.org/#/transaction/9d2e5c0b1f7a4e3d8c6b2a1f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f41c7",
      "creditedUsd": null,
      "creditedAt": null,
      "rejection": null,
      "purchase": {
        "planId": "res-10",
        "planName": "Local team",
        "quantity": 1,
        "options": {},
        "promoCode": null,
        "total": "7.50",
        "status": "pending",
        "orderId": null,
        "failureReason": null
      },
      "createdAt": "2026-10-05T14:03:11Z"
    }
  ],
  "pagination": {
    "page": 1,
    "perPage": 20,
    "total": 1,
    "totalPages": 1
  }
}
```

*curl*

```bash
curl -s "https://localserpproxy.com/api/v1/topups" \
  -H "Authorization: Bearer $API_KEY"
```

*Python*

```python
import os
import requests

API = "https://localserpproxy.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}

r = requests.get(f"{API}/topups", headers=HEADERS, timeout=30)
r.raise_for_status()
print(r.json())
```

*Node.js*

```javascript
// Node.js 18+ (built-in fetch), ES module
const API = 'https://localserpproxy.com/api/v1';

const res = await fetch(`${API}/topups`, {
  headers: { Authorization: `Bearer ${process.env.API_KEY}` },
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());
```

---

LocalSERP Proxy: LocalSERP Proxy, yerel arama sonuçlarını, reklamları ve fiyatları şehir şehir kontrol etmek için kullanılan, kripto ile ödeme yapılan ve kimlik belgesi yüklemeyi gerektirmeyen bir ABD konut proxy hizmetidir.
