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

# Quickstart

> Open two accounts, post an entry and read the balance.

You need an API key with the `read` and `entries:write` scopes, on a tenant with an NGN ledger. Use a [test key](https://docs.panoqore.com/environments.md) on a sandbox tenant. These examples use `curl`, and set two variables first.

```bash theme={null}
export PANOQORE_URL="https://api.sandbox.panoqore.example" # your API host
export PANOQORE_API_KEY="pk_test_..."
```

## 1. Check the key

```bash theme={null}
curl "$PANOQORE_URL/v1/me" -H "Authorization: Bearer $PANOQORE_API_KEY"
```

The answer lists the key's scopes and its tenant.

## 2. Open a settlement account

This account mirrors what your partner holds for you. The code decides its type: `AST` is an asset, and `SET` makes it a settlement account. Account codes are unique, so if `AST:SET:NGN:SHV` already exists on your tenant, use its id from `GET /v1/accounts` instead.

```bash theme={null}
curl -X POST "$PANOQORE_URL/v1/accounts" \
  -H "Authorization: Bearer $PANOQORE_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"code":"AST:SET:NGN:SHV","name":"Safehaven settlement","currency":"NGN"}'
```

Keep the `id` from the answer. Below, it is `$SETTLEMENT`.

## 3. Open a customer wallet

`LIA` is a liability, because this money is owed to the customer, and `WAL` makes it a wallet. `ownerRef` is your own id for the customer.

```bash theme={null}
curl -X POST "$PANOQORE_URL/v1/accounts" \
  -H "Authorization: Bearer $PANOQORE_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"code":"LIA:WAL:NGN:0001","name":"First wallet","currency":"NGN","ownerRef":"cust_1"}'
```

```json theme={null}
{
  "id": "acc_01M6F1BK8KE6JT32WRN50HYC4R",
  "code": "LIA:WAL:NGN:0001",
  "name": "First wallet",
  "type": "LIABILITY",
  "normalSide": "CREDIT",
  "currency": "NGN",
  "ownerRef": "cust_1",
  "status": "ACTIVE",
  "category": "WALLET",
  "balance": { "currency": "NGN", "posted": "0", "pending": "0", "available": "0", "asOf": "2026-11-02T21:06:31.319271Z" },
  "overdraftLimit": "0",
  "createdAt": "2026-11-02T21:06:31.315105Z",
  "updatedAt": "2026-11-02T21:06:31.315105Z"
}
```

Below, this `id` is `$WALLET`.

## 4. Post an entry

A customer paid in ₦5,000.00. Your settlement asset goes up, and so does what you owe the customer. Debits equal credits, so the entry balances.

```bash theme={null}
curl -X POST "$PANOQORE_URL/v1/entries" \
  -H "Authorization: Bearer $PANOQORE_API_KEY" \
  -H "Idempotency-Key: deposit-1" \
  -H "Content-Type: application/json" \
  -d '{
    "kind": "TRANSFER_IN",
    "description": "Opening deposit",
    "externalRef": "deposit-1",
    "postings": [
      {"accountId": "'"$SETTLEMENT"'", "side": "DEBIT",  "amount": "500000", "currency": "NGN"},
      {"accountId": "'"$WALLET"'",     "side": "CREDIT", "amount": "500000", "currency": "NGN"}
    ]
  }'
```

The answer is the entry, with `"status": "POSTED"` and both postings. If the request times out, send it again with the same `Idempotency-Key`: see [Idempotency](https://docs.panoqore.com/idempotency.md).

## 5. Read the balance

```bash theme={null}
curl "$PANOQORE_URL/v1/accounts/$WALLET/balance" -H "Authorization: Bearer $PANOQORE_API_KEY"
```

```json theme={null}
{
  "currency": "NGN",
  "posted": "500000",
  "pending": "0",
  "available": "500000",
  "version": "1",
  "asOf": "2026-11-02T21:06:31.743691Z"
}
```

## Next

* [Holds](https://docs.panoqore.com/concepts/holds.md) reserve money before a payout.
* [Named accounts](https://docs.panoqore.com/guides/named-accounts.md) turn partner credits into wallet credits.
* [Webhooks](https://docs.panoqore.com/guides/webhooks.md) tell your product when something posts.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.