# Quickstart

> Make your first StrideHQ API request and prepare a payment run in the sandbox.

This guide walks you through preparing your first creator payment run in the StrideHQ sandbox. It uses demo data, so no real money moves.

StrideHQ uses API keys, so there's no token to exchange. You'll:

1. Create a sandbox API key.
2. Prepare a payment run.
3. Read the response.

## Before you start

You need:

- API access switched on for your organisation. This is set up during onboarding, so [request access](https://developers.stridehq.ai/support.md) if you don't have it yet.
- The Owner role in StrideHQ, or an Owner to create the key for you.
- curl, or an API client such as Postman.

## Step 1: Create a sandbox API key

In StrideHQ, go to **Settings > Developers > API keys** and create a key for the **Sandbox** environment with the scopes `read` and `payment_runs:prepare`. Copy it straight away: it starts with `shq_test_` and is only shown once.

```bash
export STRIDEHQ_KEY="shq_test_..."
```

Keep your key in a password manager or secrets manager. Never put it in code, a browser or a shared document.

## Step 2: Prepare a payment run

Prepare a run from approved invoices due in the next 7 days, plus anything overdue.

```bash
curl https://api.sandbox.stridehq.ai/v1/payment_runs \
  -H "Authorization: Bearer $STRIDEHQ_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: quickstart-run-001" \
  -d '{
    "due_within_days": 7,
    "include_overdue": true
  }'
```

The `Idempotency-Key` makes the request safe to retry. Send it again and you get the same run back, not a second one.

## Step 3: Read the response

```json
{
  "id": "run_8Kd2Lx",
  "object": "payment_run",
  "reference": "PR-STRIDE-26-053",
  "status": "pending_approval",
  "created_by_type": "api",
  "payment_count": 11,
  "totals": [
    { "currency": "GBP", "amount": 1875749 }
  ],
  "skipped": [
    { "invoice_id": "inv_5Rb8", "reason": "over_po_amount" }
  ],
  "approval_url": "https://app.sandbox.stridehq.ai/payments/runs/run_8Kd2Lx",
  "created_at": "2026-11-03T09:12:44Z"
}
```

| Field          | What it means                                                          |
| -------------- | ---------------------------------------------------------------------- |
| `status`       | `pending_approval`: the run is ready for a person to approve.          |
| `totals`       | The total per currency, in the smallest unit. `1875749` is £18,757.49. |
| `skipped`      | Invoices left out of the run, each with a reason.                      |
| `approval_url` | Where someone with approval permission approves the run in StrideHQ.   |

The API prepares runs but never approves or pays them. A person on your team approves every run in StrideHQ.

If you get a `401` error, check you copied the whole key and are using a `shq_test_` key with the sandbox address.

## Next steps

- [Test the full run in the sandbox](https://developers.stridehq.ai/api-documentation/environments-and-sandbox#test-helpers.md): approve, fund and complete it without logging in.
- [StrideHQ building blocks](https://developers.stridehq.ai/building-blocks.md): creators, invoices, payment runs, payments and approvals.
- [Webhooks](https://developers.stridehq.ai/api-documentation/webhooks.md): get told when a run is approved, funded or paid.
- [API reference](https://developers.stridehq.ai/api-documentation/api-reference.md): every endpoint, field and error.
