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

# Quickstart

> Make your first Inflow API request and create a customer.

# Quickstart

This guide takes you from an API key to a customer you can use in a payment request. It uses the sandbox, so you can integrate without moving real money.

## Before you begin

You need an Inflow organization with an API key. Create or copy the key from the Inflow Dashboard, then store it in an environment variable—never expose it in browser or mobile-app code.

```bash theme={null}
export INFLOW_API_KEY="gtw_sk_your_api_key"
export INFLOW_BASE_URL="https://sandbox.inflowafrica.com/api"
```

<Note>
  API keys are scoped to one organization. Requests made with a key can access only that organization's customers, payments, and wallets.
</Note>

## Authenticate requests

Send the key in the `Authorization` header as a Bearer token. Inflow also accepts the `X-API-Key` header, but use one method consistently.

```bash theme={null}
curl "$INFLOW_BASE_URL/v1/wallets" \
  --header "Authorization: Bearer $INFLOW_API_KEY"
```

A successful response confirms that the key is valid:

```json theme={null}
{
  "data": [
    {
      "id": "8d90d093-9eaa-4a33-9775-6f987c086048",
      "currency": "NGN",
      "balance": 0,
      "isActive": true,
      "accountNumber": null,
      "accountName": null,
      "bankName": null,
      "createdAt": "2026-07-24T09:15:00.000Z"
    }
  ]
}
```

## Create a customer

Create a customer before creating a payment. Save the returned `data.id`; it is the `customerId` required by the payment API.

```bash theme={null}
curl --request POST "$INFLOW_BASE_URL/v1/customers" \
  --header "Authorization: Bearer $INFLOW_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "firstName": "Ada",
    "lastName": "Okafor",
    "email": "ada.okafor@example.com",
    "phone": "+2348012345678",
    "address": {
      "street": "12 Marina Road",
      "city": "Lagos",
      "state": "Lagos",
      "country": "NG"
    }
  }'
```

```json theme={null}
{
  "data": {
    "id": "4b2a49b2-526c-4c08-b342-f8b1f409c091",
    "firstName": "Ada",
    "lastName": "Okafor",
    "email": "ada.okafor@example.com",
    "isActive": true,
    "createdAt": "2026-07-24T09:16:00.000Z"
  }
}
```

## Use the right environment

| Environment | Base URL                               | Use it for                             |
| ----------- | -------------------------------------- | -------------------------------------- |
| Sandbox     | `https://sandbox.inflowafrica.com/api` | Building and testing your integration  |
| Production  | `https://app.inflowpay.net/api`        | Live customer payments and withdrawals |

Keep sandbox and production keys separate. When you are ready to go live, switch both the base URL and the API key.

## Next step

You now have a customer ID. Follow [Collect a payment](/guides/collect-a-payment) to create a payment request and direct the payer to checkout.
