# Before you start: what you need and where to get it

> **Writer's brief**
> - **Audience:** a new reseller who has just been given a PNLCS panel.
> - **Promise:** "Gather these once and every setup guide goes smoothly."
> - **Keywords:** PNLCS setup checklist, Truehost reseller API key, Daraja API credentials, M-PESA paybill API.
> - **Format idea:** a printable checklist or downloadable PDF.

Most setup problems come from a missing key, or a key from the wrong account.
Collect everything below before you start. Keep it in a password manager, not
in email or chat.

## Your PNLCS panel

| What | Where to get it | Used in |
|---|---|---|
| Admin area address and login | Your welcome email from your provider, or whoever installed the panel. The admin area is at `https://<your panel>/admin` | Every guide |
| The address customers will use, e.g. `billing.yourbrand.com` | A domain or subdomain you own. Point it at the panel server with an **A record**, then ask your technical contact to set it as the panel address (`APP_URL`) and issue an SSL certificate | [White label](02-white-label.md) |
| A working email account to send from (SMTP) | Your email provider: SMTP host, port, username, password. Example: `noreply@yourbrand.com` | Customers get invoices and password resets |

> ⚠️ **HTTPS is required.** Card gateways, M-PESA callbacks and Paystack
> webhooks only work on an `https://` address that the internet can reach.

## Domains: Truehost Domains Reseller API

Needed to sell domains ([Domain pricing](03-domain-pricing.md)).

| What | Where to get it |
|---|---|
| **Truehost Client Area Site** | The Truehost website where your reseller account lives and where you log in: truehost.co.ke, truehost.com, truehost.cloud, truehost.co.za, truehost.com.ng and so on. |
| **API Username** | The email you log in to that Truehost site with. |
| **API Key** | That site's client area → **Domains Reseller** section → **API settings**. If there is no such section, ask Truehost support to enable domain reselling on your account. |
| **Account balance** | Top up your reseller balance on the same site. Every registration, transfer and renewal is paid from it. |

> ⚠️ Each Truehost site keeps **its own** reseller accounts, keys and balance.
> A key from truehost.co.ke does not work with truehost.com.

## Hosting server (for packages)

Needed to create hosting accounts automatically ([Creating packages](01-creating-packages.md)).
Your hosting provider gives you one of these:

| Server type | What you need | Where it comes from |
|---|---|---|
| **cPanel / WHM** | Server hostname, WHM username, an **API token** | WHM → **Development → Manage API Tokens** |
| **Panelica** | Hostname, **API Key** (`pk_live_…`) and **API Secret** (`sk_live_…`) | Panelica panel → **Settings → API Keys**. The secret is only shown once |
| **DirectAdmin** | Hostname, admin username, password or login key | DirectAdmin → Login Keys |
| **Plesk** | Hostname, admin username, password or API key | Plesk administrator account |

Also note the **packages (plans)** already set up on that server. A package
in PNLCS sells one of them, for example "Starter 5GB".

## Payments

Needed for [Payment methods](06-payment-methods.md). You only need the ones you'll offer.

| Method | What you need | Where to get it |
|---|---|---|
| **M-PESA (Safaricom Daraja)** | Consumer key, consumer secret, passkey, business short code (PayBill or Till) | [developer.safaricom.co.ke](https://developer.safaricom.co.ke): create an app for testing; **Go Live** for production credentials. The production passkey arrives by email |
| M-PESA go-live extras | A **Business Administrator** on the M-PESA org portal; an **API operator (initiator)** with its security credential, for payment status checks and reversals | M-PESA org portal (from Safaricom when the PayBill/Till was opened), then the Daraja portal for the credential |
| **Paystack** (cards, M-Pesa, bank) | Public key and secret key | [dashboard.paystack.com](https://dashboard.paystack.com) → **Settings → API Keys & Webhooks** |
| **Stripe** (cards) | Publishable key, secret key, webhook signing secret | [dashboard.stripe.com](https://dashboard.stripe.com) → Developers → API keys / Webhooks |
| **PayPal** | Client ID and secret | [developer.paypal.com](https://developer.paypal.com) → Apps & Credentials |
| **Bank transfer** | Bank name, account name and number, branch or SWIFT code | Your bank |

> 💡 Start with **test (sandbox) keys**, make a test payment, then switch to
> live keys.

## Moving from WHMCS

Needed for [Connect to WHMCS](04-connect-whmcs.md).

| What | Where to get it |
|---|---|
| WHMCS database host, name, username, password, table prefix | WHMCS's `configuration.php` file (`$db_host`, `$db_name`, `$db_username`, `$db_password`), or your WHMCS host's control panel. The prefix is `tbl` unless changed |
| Remote database access | The WHMCS database must accept connections from the PNLCS server's IP. In cPanel: **Remote MySQL** → add the PNLCS server IP. Better still, create a **read-only** database user for the import |

## Branded nameservers

Needed for [Custom nameservers](05-custom-nameservers.md).

| What | Where to get it |
|---|---|
| A domain you own for the nameservers, e.g. `yourbrand.com` | Your registrar |
| The IP addresses behind the nameservers your hosting uses | Ask your hosting provider (Truehost support) for the nameserver IPs to use for private nameservers |

## Brand assets

Needed for [White label](02-white-label.md).

- **Logo:** PNG, JPG, SVG or WebP, max 2 MB. A wide logo about 30 px tall
  works best in the header.
- **Favicon:** PNG, ICO or SVG, max 512 KB, square.
- **Brand colours**, company legal name, address and support email.
