---
title: "Kirim request berbayar pertama Anda dengan x402"
description: "Kirim request ke x402.erpc.global, baca harganya di respons 402, bayar dengan client x402, lalu terima hasil RPC beserta bukti settlement."
canonical: "https://erpc.global/id/doc/x402/quickstart/"
locale: "id"
---

# Kirim request berbayar pertama Anda dengan x402

Panduan ini menelusuri satu request Solana melalui x402: membaca harga, membayarnya, lalu menerima jawaban beserta bukti settlement. Cara yang sama berlaku untuk 15 chain lainnya, masing-masing di path-nya sendiri.

Anda memerlukan wallet berisi USDC di Solana, atau USDC atau EURC di Base, serta client x402: software yang membaca respons 402, menandatangani pembayaran dari wallet Anda, lalu mengirim ulang request beserta pembayaran itu. Untuk client x402, lihat dokumentasi x402 di [x402.org](https://x402.org/).

## 1. Kirim request

Kirim request RPC tanpa pembayaran:

```bash
curl -i https://x402.erpc.global/v1/solana-mainnet \
  --header 'Content-Type: application/json' \
  --data '{"jsonrpc":"2.0","id":1,"method":"getSlot"}'
```

Jawabannya adalah 402 Payment Required. Header-nya menyebutkan method dan harganya:

```http
HTTP/2 402
x-payment-required: eyJ4NDAyVmVyc2lvbiI6Mi…
x-rpc-methods: getSlot
x-rpc-weight: 1000
x-rpc-price-usd: 0.001
```

Body mencantumkan opsi pembayaran di `accepts`, satu untuk setiap stablecoin yang bisa dipakai membayar request tersebut. `amount` dinyatakan dalam satuan terkecil stablecoin, jadi 1000 berarti 0.001 USDC, atau 0.001 EURC:

```json
{
  "error": { "code": "payment_required", "message": "Payment required", "request_id": "…" },
  "x402Version": 2,
  "accepts": [
    { "scheme": "exact", "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", "amount": "1000", "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", … },
    { "scheme": "exact", "network": "eip155:8453", "amount": "1000", "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", … },
    { "scheme": "exact", "network": "eip155:8453", "amount": "1000", "asset": "0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42", … }
  ],
  "pricing": { "methods": ["getSlot"], …, "weight": 1000, "rawWeight": 42, …, "price": "$0.001", … },
  …
}
```

## 2. Bayar dengan client x402

Berikan respons 402 ke client x402 Anda. Client memilih opsi yang bisa dibayar wallet Anda, menandatangani pembayaran sebesar jumlah itu, lalu mengodekannya untuk header X-Payment. Pembayaran ini tidak memerlukan SOL atau ETH untuk biaya jaringan.

## 3. Kirim ulang request beserta pembayarannya

Kirim lagi body yang sama, dengan pembayaran di header X-Payment:

```bash
curl -i https://x402.erpc.global/v1/solana-mainnet \
  --header 'Content-Type: application/json' \
  --header 'X-Payment: <PAYMENT_PAYLOAD>' \
  --data '{"jsonrpc":"2.0","id":1,"method":"getSlot"}'
```

Jangan ubah body. Harga dihitung dari body, jadi jika body yang diubah memiliki harga berbeda, pembayaran tidak lagi cocok dengan harganya, sehingga request dijawab dengan `price_mismatch`.

Setelah pembayaran diverifikasi dan settlement selesai, jawaban RPC kembali beserta bukti settlement di header X-Payment-Response:

```http
HTTP/2 200
x-payment-response: <RECEIPT>
```

```json
{ "jsonrpc": "2.0", "id": 1, "result": … }
```

Satu pembayaran hanya berlaku untuk satu request. Jika Anda mengirim pembayaran yang sama lagi, pembayaran itu ditolak dengan 402 `payment_invalid` atau 409 `duplicate_payment`, dan request tidak diteruskan lagi.

## Respons

Request yang dijawab x402.erpc.global dengan error sebelum pembayaran diminta tidak dikenai biaya.

| Status | `error.code` | Yang terjadi |
| --- | --- | --- |
| 402 | `payment_required` | Tidak ada pembayaran yang dikirim. Body menyebutkan harga dan opsi pembayaran. |
| 402 | `payment_invalid` | Pembayaran tidak lolos verifikasi. Tanda tangani pembayaran baru, lalu kirim ulang request. |
| 402 | `price_mismatch` | Pembayaran tidak cocok dengan opsi yang ditawarkan respons 402 untuk request ini, misalnya dalam hal harga. |
| 402 | `payment_amount_too_low` | Jumlahnya di bawah pembayaran terkecil yang di-settle x402.erpc.global. |
| 402 | `settlement_failed` | Settlement dilaporkan gagal. Respons menawarkan opsi pembayaran lagi. |
| 409 | `duplicate_payment` | Pembayaran sudah pernah dipakai. |
| 400 | `method_not_supported`, `invalid_request` | Path tidak menjual method tersebut, atau tidak menerima body tersebut. Tidak ada biaya. |
| 413 | `batch_too_large` | Batch berisi lebih dari 100 panggilan. Tidak ada biaya. |
| 500 | `configuration_error` | Path saat ini tidak dapat melayani request. Tidak ada biaya. |
| 503 | `payment_unavailable` | Saat ini tidak ada opsi pembayaran yang bisa ditawarkan. Tidak ada biaya. Coba lagi setelah jeda (dalam detik) yang ditunjukkan Retry-After. |
| 503 | `service_busy` | Terlalu banyak request sekaligus. Tidak ada biaya. Coba lagi setelah jeda (dalam detik) yang ditunjukkan Retry-After. |
| 502 | `settlement_failed` | Hasil settlement tidak diketahui: pembayaran mungkin sudah berhasil, dan tidak ada bukti yang dilampirkan. Sebelum menandatangani pembayaran baru, periksa di Solana atau Base apakah pembayaran yang Anda tanda tangani sudah berhasil. |
| 502, 504 | `upstream_error`, `upstream_timeout` | Settlement pembayaran sudah selesai, tetapi chain tidak menjawab, atau tidak menjawab tepat waktu. Bukti settlement tetap dilampirkan. Mengirim ulang request memerlukan pembayaran baru. |

Di Solana, panggilan yang akan membaca terlalu banyak data, seperti `getProgramAccounts` tanpa filter pada program besar, dijawab dengan HTTP 200 dan error JSON-RPC sebelum pembayaran apa pun diminta, sehingga tidak dikenai biaya.

## Langkah berikutnya

- [Cara x402 menghitung harga request](https://erpc.global/id/doc/x402/pricing/): harga satu panggilan, minimum \$0.001, dan batch.
- [Ringkasan x402](https://erpc.global/id/doc/x402/overview/): path setiap chain dan opsi pembayaran.
- [Dokumen OpenAPI](https://x402.erpc.global/doc): bentuk request dan respons setiap path.
