> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rach.finance/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Make your first API-key call in minutes.

This gets you from a key to a live API call.

## 1. Get a key

Grab your Payments **test** key from the dashboard — see
[Get your API keys](/guides/api-keys). Then set your environment:

```bash theme={null}
export RACH_BASE="https://api.rach.finance/api/v1"
export RACH_KEY="test_sk_your_key_here"
```

## 2. Create a checkout

Accept a crypto payment with a hosted checkout (Crypto Gateway):

<CodeGroup>
  ```bash cURL theme={null}
  curl "$RACH_BASE/checkout/create" \
    -H "X-API-Key: $RACH_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "amount": 50,
      "currency": "USD",
      "reference": "order_1001",
      "callback_url": "https://yourapp.com/webhooks/rach",
      "payment_method": "crypto"
    }'
  ```

  ```js Node theme={null}
  const res = await fetch(`${process.env.RACH_BASE}/checkout/create`, {
    method: "POST",
    headers: { "X-API-Key": process.env.RACH_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({
      amount: 50, currency: "USD", reference: "order_1001",
      callback_url: "https://yourapp.com/webhooks/rach", payment_method: "crypto",
    }),
  });
  console.log((await res.json()).payment_url);
  ```

  ```python Python theme={null}
  import requests, os
  r = requests.post(f"{os.environ['RACH_BASE']}/checkout/create",
      headers={"X-API-Key": os.environ["RACH_KEY"]},
      json={"amount": 50, "currency": "USD", "reference": "order_1001",
            "callback_url": "https://yourapp.com/webhooks/rach", "payment_method": "crypto"})
  print(r.json()["payment_url"])
  ```
</CodeGroup>

```json Response theme={null}
{
  "session_id": "cs_1a2b3c",
  "payment_url": "https://api.rach.finance/pay/1a2b3c",
  "amount": 50,
  "currency": "USD",
  "status": "pending",
  "expires_at": "2026-08-14T13:00:00Z"
}
```

Redirect your customer to `payment_url`.

## 3. Confirm

Poll the session, or (better) receive a [webhook](/guides/webhooks) on settlement:

```bash theme={null}
curl "$RACH_BASE/checkout/verify/cs_1a2b3c" -H "X-API-Key: $RACH_KEY"
```

<Check>
  You just took a crypto payment in sandbox. Swap the `test_sk_` key for a `live_sk_` key to
  go live — no code changes. See [Test vs Live](/guides/environments).
</Check>

## Next

<CardGroup cols={2}>
  <Card title="Crypto Gateway" icon="basket-shopping" href="/products/crypto-gateway" />

  <Card title="Wallet-as-a-Service" icon="wallet" href="/products/wallet-as-a-service" />

  <Card title="CaaS (Stablecoins)" icon="coins" href="/products/caas" />

  <Card title="Webhooks" icon="bell" href="/guides/webhooks" />
</CardGroup>
