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

# Quickstart

> Make your first requests against the Sandbox: list your customers, then create one.

You'll need a Sandbox **App ID** and **API key**. See [Authentication](https://docs.streamlinedpayments.com/authentication.md) for how to get them.

**1. Save your credentials**

Put your credentials in environment variables so they stay out of your code and shell history.

```bash theme={null}
export STREAMLINED_APP_ID="your-app-id"
export STREAMLINED_API_KEY="your-api-key"
```

**2. List your customers**

Every request sends both headers. This one returns the first page of customers.

```bash theme={null}
curl https://api.staging.streamlinedpayments.com/api/v1/customers \
  -H "X-App-Id: $STREAMLINED_APP_ID" \
  -H "X-Api-Key: $STREAMLINED_API_KEY"
```

You get the customers and a `meta` object for paging through the rest:

```json theme={null}
{
  "customers": [
    {
      "uuid": "8f14e45f-ceea-467a-9575-1c8d3b2a9e01",
      "first_name": "Jane",
      "last_name": "Alvarez",
      "company_name": "Jane's Coffee",
      "website": "https://janescoffee.com",
      "quick_pay_enabled": true,
      "invoice_count": 12,
      "last_invoiced_at": "2026-10-02T17:20:00Z",
      "total_open_balance_amount": 113996
    }
  ],
  "meta": {
    "current_page": 1,
    "per_page": 20,
    "total_pages": 1,
    "total_count": 1
  }
}
```

Amounts are integers in cents, so `113996` is \$1,139.96.

If you get a `401`, check that both headers are set and that you're using Sandbox credentials with the Sandbox URL.

**3. Create a customer**

Send the customer's details inside a `customer` object.

```bash theme={null}
curl https://api.staging.streamlinedpayments.com/api/v1/customers \
  -X POST \
  -H "X-App-Id: $STREAMLINED_APP_ID" \
  -H "X-Api-Key: $STREAMLINED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "customer": {
      "first_name": "Sam",
      "last_name": "Okafor",
      "company_name": "Northside Market",
      "net_terms": 30
    }
  }'
```

A `201` returns the new customer, including its `uuid`. Use the `uuid` to look up, update or invoice the customer later.

## Next steps

> **[Handle errors](https://docs.streamlinedpayments.com/errors.md)**
>
> What each status code means and what to do about it.

> **[Set up webhooks](https://docs.streamlinedpayments.com/guides/webhooks.md)**
>
> Hear about payments instead of polling for them.


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