# Quickstart

From zero to a working install in about 15 minutes.

Follow this once end-to-end; every later chapter goes deeper on one step.

## 1. Create the app

Dashboard → **Apps** → *New app*. A draft is created immediately with an 8-digit app number, e.g. `41028837`. Give it a name (min. 3 characters) and continue.

## 2. Grab test credentials

Step **OAuth & webhooks** of the wizard shows your test client id and secret and lets you set a redirect URI.

```bash
export SOUTHBILL_CLIENT_ID=sb_client_test_...
export SOUTHBILL_CLIENT_SECRET=sb_cs_test_...
```

## 3. Create a sandbox environment

Dashboard → **Sandbox**. An environment is an isolated fake merchant with its own products, payments and ledger. You get one by default and can create up to five.

## 4. Install your app into the environment

In the environment, choose *Install app* and pick your app. This runs the same OAuth consent flow a real merchant sees and produces a real access token — scoped to the sandbox merchant.

## 5. Call the App API

```bash
curl https://api.southbill.com/v1/app/merchant \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

```json
{
  "id": "mch_test_8f21",
  "business_name": "Sandbox Coffee GmbH",
  "country": "DE",
  "currency": "EUR",
  "mode": "test"
}
```

## 6. Receive an event

Add a webhook endpoint, subscribe to `payment_intent.succeeded`, then trigger a payment from the environment's ledger tools. The delivery, the payload and every retry show up in **Logs**.

## 7. Submit

When the listing is complete and the checklist is green, submit for review. See [Review & publishing](/docs/dev/apps/review).
