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

# Quickstart

> Start making API calls in under 5 minutes

## Prerequisites

Before you begin, make sure you have:

* A Rolla business account at [app.rolla.xyz](https://app.rolla.xyz)
* An API key from your dashboard (**Settings → API Keys**)
* NGN balance in your wallet

## Step 1: Get Your API Key

<Steps>
  <Step title="Log in to your dashboard">
    Go to [app.rolla.xyz](https://app.rolla.xyz) and sign in.
  </Step>

  <Step title="Navigate to API Keys">
    Click **Settings** in the sidebar, then select **API Keys**.
  </Step>

  <Step title="Create a new key">
    Click **Create API Key**, give it a name, and copy the key. Store it securely—you won't be able to see it again.
  </Step>
</Steps>

<Warning>
  Keep your API key secret. Never expose it in frontend code or public repositories.
</Warning>

## Step 2: Test Your API Key

Make a simple request to list available banks:

```bash theme={null}
curl -X GET "https://api.rolla.xyz/api/v1/external/banks" \
  -H "X-API-Key: your_api_key_here"
```

You should receive a response like:

```json theme={null}
{
  "status": true,
  "message": "Banks retrieved successfully",
  "data": {
    "data": [
      { "bankName": "Access Bank", "bankCode": "000014" },
      { "bankName": "GTBank", "bankCode": "000013" }
    ]
  }
}
```

## Step 3: Validate an Account

Validate a bank account using the lookup endpoint:

```bash theme={null}
curl -X POST "https://api.rolla.xyz/api/v1/external/lookup" \
  -H "X-API-Key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "bankCode": "000014",
    "accountNumber": "0123456789"
  }'
```

## Step 4: Create a Beneficiary

Save the validated account as a beneficiary so you can send payments to it:

```bash theme={null}
curl -X POST "https://api.rolla.xyz/api/v1/external/beneficiaries" \
  -H "X-API-Key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "currency": "NGN",
    "label": "Test beneficiary",
    "account_name": "JOHN DOE",
    "account_number": "0123456789",
    "bank_name": "Access Bank",
    "bank_code": "000014"
  }'
```

Copy the `id` from the response — you'll use it in the next step.

<Info>
  You can also skip this step and provide inline beneficiary details directly in the withdrawal request. See the [Withdraw Funds](/api-reference/endpoint/wallet/withdraw) reference for details.
</Info>

## Step 5: Withdraw from Your Wallet

Use the beneficiary ID to withdraw funds from your wallet to their bank account:

```bash theme={null}
curl -X POST "https://api.rolla.xyz/api/v1/external/wallet/withdraw" \
  -H "X-API-Key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 100000,
    "currency": "NGN",
    "beneficiaryId": "BENEFICIARY_ID_FROM_STEP_4",
    "description": "Test withdrawal"
  }'
```

<Info>
  The `amount` is in minor units (kobo for NGN). So `100000` = ₦1,000. Fees are deducted from the withdrawal amount by default.
</Info>

<Info>
  USD withdrawals use cents the same way: **`100`** = **\$1.00** USD.
</Info>

## Next Steps

<CardGroup cols={2}>
  <Card title="API Reference" icon="book" href="/api-reference/introduction">
    Explore all available endpoints and parameters.
  </Card>

  <Card title="Wallet Withdrawals" icon="money-bill-transfer" href="/api-reference/endpoint/wallet/withdraw">
    Explore withdrawal options including USD wires and crypto.
  </Card>

  <Card title="Transactions" icon="list" href="/api-reference/endpoint/transactions">
    Query and filter your transaction history.
  </Card>

  <Card title="Get Support" icon="headset" href="mailto:support@rolla.xyz">
    Contact our team for help with your integration.
  </Card>
</CardGroup>
