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

# Quickstart

> Get an access token and make your first UQPAY API call in minutes.

This guide walks you through authenticating with the UQPAY API and making your first request — all from the command line.

## Prerequisites

Before you begin, make sure you have:

* A [sandbox account](/account-center/v1.6/guide/create-a-sandbox-account)
* Your [API keys](/account-center/v1.6/guide/create-api-keys) (`x-client-id` and `x-api-key`)

## Authenticate and call the API

<Steps>
  <Step title="Get an access token">
    Call the [Access Token](/account-center/v1.6/api-reference/access-token) endpoint with your API credentials to get a bearer token.

    ```bash theme={null}
    curl -X POST https://api-sandbox.uqpaytech.com/api/v1/connect/token \
      -H "x-client-id: YOUR_CLIENT_ID" \
      -H "x-api-key: YOUR_API_KEY"
    ```

    <Accordion title="Example response">
      ```json theme={null}
      {
        "auth_token": "2YotnFZFEjr1zCsicMWpAA...",
        "expired_at": 1757449854
      }
      ```
    </Accordion>

    Copy the `auth_token` value — you need it for the next step.

    <Note>
      The access token is valid for **30 minutes** in production. You can reuse it across multiple API calls until it expires.

      Token concurrency depends on the business line — Account Center and Card Issuance allow multiple tokens to coexist, while Global Account, Global Acquiring, and Stablecoin Account invalidate the previous token each time a new one is issued. See the [Access Token reference](/account-center/v1.6/api-reference/access-token) for details.
    </Note>
  </Step>

  <Step title="Make your first API call">
    Use the token to call the [List Connected Accounts](/account-center/v1.6/api-reference/list-connected-accounts) endpoint. This returns the accounts connected to your platform.

    ```bash theme={null}
    curl -X GET "https://api-sandbox.uqpaytech.com/api/v1/accounts?page_size=10&page_number=1" \
      -H "x-auth-token: Bearer YOUR_AUTH_TOKEN"
    ```

    <Warning>
      The `x-auth-token` header value must be `Bearer ` followed by the token, with a **single space** between `Bearer` and the JWT. The most common 401 errors come from one of:

      * sending the bare JWT without the `Bearer ` prefix,
      * sending `Bearer<token>` with no space,
      * putting the token under `Authorization` instead of `x-auth-token`.

      The header name is `x-auth-token`, not `Authorization`.
    </Warning>

    <Accordion title="Example response">
      ```json theme={null}
      {
        "total_pages": 1,
        "total_items": 1,
        "data": [
          {
            "account_id": "f5bb6498-552e-40a5-b14b-616aa04ac1c1",
            "short_reference_id": "P220406-LLCVLRM",
            "business_code": ["BANKING"],
            "account_name": "UQPAY PTE LTD.",
            "entity_type": "COMPANY",
            "status": "ACTIVE",
            "verification_status": "APPROVED",
            "country": "SG",
            "contact_details": {
              "email": "example@company.com"
            }
          }
        ]
      }
      ```
    </Accordion>

    If you see a response with `data`, your integration is working.
  </Step>
</Steps>

## Set up webhooks

UQPAY uses webhooks to notify your application when events happen asynchronously — for example, when a payment succeeds or a payout completes. Setting up a webhook endpoint ensures you don't need to poll the API for status updates.

1. [Configure a notification URL](/account-center/v1.6/guide/webhooks-setting) in the dashboard and subscribe to the event types relevant to your integration.
2. Review the [Webhooks Overview](/account-center/v1.6/guide/webhooks-overview) for payload structure, retry logic, and signature verification.

<Tip>
  You can set up webhooks at any time, but doing it early means you won't miss any events during development.
</Tip>

## Next steps

You are now authenticated and can call any UQPAY API. Explore the product that fits your use case:

<CardGroup cols={2}>
  <Card title="Global Acquiring" icon="cash-register" href="/global-acquiring/v1.6/guide/overview">
    Accept card and e-wallet payments.
  </Card>

  <Card title="Global Account" icon="building-columns" href="/global-account/v1.6/guide/overview">
    Collect funds, send payouts, and exchange currencies.
  </Card>

  <Card title="Card Issuance" icon="credit-card" href="/card-issuance/v1.6/guide/overview">
    Issue and manage virtual or physical cards.
  </Card>

  <Card title="Stablecoin Account" icon="arrow-right-arrow-left" href="/stablecoin-account/v1.6/guide/stablecoin-account-api-publisher-disclaimer">
    On/off-ramp between fiat and stablecoins.
  </Card>
</CardGroup>
