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

# Quickstart

> Issue an access token and make your first authenticated call against the sandbox.

This walks you from credentials to a working request in three steps. It uses the
sandbox base URL. Swap in the production base URL once you are promoted.

<Info>
  **Base URLs**

  * Sandbox: `https://api.dev.zeam.paytec.io/v1`
  * Production: `https://api.zeam.app/v1`
</Info>

<Steps>
  <Step title="Get sandbox credentials">
    Your Zeam business administrator registers an application in the business
    portal and shares its `clientId`, client secret, and application secret
    (`apiKey`) with you. See [API keys](/authentication/api-keys).
  </Step>

  <Step title="Issue an access token">
    Exchange your client credentials for a short-lived bearer token. This route
    is public.

    ```bash cURL theme={null}
    curl -sS https://api.dev.zeam.paytec.io/v1/auth/token \
      -H "Content-Type: application/json" \
      -d '{
        "clientId": "11111111-1111-1111-1111-111111111111",
        "clientSecret": "$ZEAM_CLIENT_SECRET"
      }'
    ```

    The response contains the token and its lifetime in seconds:

    ```json Response theme={null}
    {
      "accessToken": "eyJ0eXAiOiJKV1Qi...",
      "tokenType": "Bearer",
      "expiresIn": 3599
    }
    ```
  </Step>

  <Step title="Call a protected endpoint">
    Send the access token as a bearer token and your application secret as the
    `x-zeam-auth` header. Both are required on every protected request.

    ```bash cURL theme={null}
    curl -sS https://api.dev.zeam.paytec.io/v1/wallets \
      -H "Authorization: Bearer $ZEAM_TOKEN" \
      -H "x-zeam-auth: $ZEAM_APP_SECRET"
    ```

    A successful response is a paginated collection:

    ```json Response theme={null}
    {
      "data": [
        { "id": "…", "walletName": "Treasury ZAR", "publicKey": "G…" }
      ],
      "pagination": { "nextCursor": null, "hasMore": false }
    }
    ```
  </Step>
</Steps>

## Next steps

<CardGroup cols={2}>
  <Card title="Authentication" icon="shield-check" href="/authentication/overview">
    Understand tokens, the application secret, and association scoping.
  </Card>

  <Card title="Make your first transaction" icon="route" href="/guides/make-your-first-transaction">
    Go from a quote to an executed payment and webhook updates.
  </Card>

  <Card title="API reference" icon="terminal" href="/api-reference/introduction">
    Browse every endpoint and try requests in the playground.
  </Card>

  <Card title="Errors" icon="triangle-alert" href="/platform/errors">
    Learn the RFC 7807 error format and how to handle failures.
  </Card>
</CardGroup>
