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

# Quickstart

> Get started with the Issuing API in 5 minutes

# Quickstart Guide

This guide will help you make your first API call to the Issuing API in just a few minutes.

## Prerequisites

Before you begin, make sure you have:

* An Access Key (obtained from your implementation manager)
* A tool to make HTTP requests (cURL, Postman, or your preferred HTTP client)

<Note>
  **Authentication:** This quickstart uses simplified examples. In production, you'll need to sign requests with RSA-signed JWT tokens. For sandbox testing, you can use HTTP Basic Authentication. See [Request Signing](/issuing/getting-started/request-signing) for complete authentication details.
</Note>

## Step 1: Get Your Access Key

Contact your implementation manager to obtain your Access Key (UUID). You'll also need to register your RSA public key to receive the Access Key.

<Warning>
  Keep your Access Key and private key secure! Never share them publicly or commit them to version control.
</Warning>

## Step 2: Make Your First Request

Let's test API connectivity. In sandbox, you can use Basic Auth:

```bash theme={null}
# Sandbox (Basic Auth - no signature required)
curl -u YOUR_ACCESS_KEY: https://sandbox.access.utgl.io/v1/ping
```

For production, you'll need to sign requests with a JWT token:

```bash theme={null}
# Production (requires RSA-signed JWT)
curl https://access.utgl.io/v1/ping \
  -H "Authorization: Bearer YOUR_SIGNED_JWT_TOKEN"
```

Replace `YOUR_ACCESS_KEY` or `YOUR_SIGNED_JWT_TOKEN` with your actual credentials. See [Request Signing](/issuing/getting-started/request-signing) for JWT token generation.

## Step 3: List Your Accounts

Retrieve your accounts:

```bash theme={null}
# Sandbox example
curl -u YOUR_ACCESS_KEY: https://sandbox.access.utgl.io/v1/accounts \
  -H "Content-Type: application/json"
```

## Step 4: Create a Card

To create a card, you first need a card account. Then create a card:

```bash theme={null}
# Sandbox example
curl -X POST https://sandbox.access.utgl.io/v1/cards \
  -u YOUR_ACCESS_KEY: \
  -H "Content-Type: application/json" \
  -d '{
    "cardAccountId": "c8e2752d-6bd7-4244-a9f6-580f5640eaeb",
    "type": "virtual",
    "productId": "your-product-id-uuid",
    "embossedName": "John Doe"
  }'
```

<Note>
  **Required Fields:**

  * `cardAccountId`: The card account under which to issue the card
  * `type`: Either `"physical"` or `"virtual"`
  * `productId`: UUID of the card product (provided by your solution manager)
  * `embossedName`: Name to appear on the card (max 22 characters, letters/spaces/hyphens only)

  See the [Card Issuing guide](/issuing/guides/creating-cards) for detailed instructions.
</Note>

## Next Steps

<CardGroup cols={2}>
  <Card title="Authentication" icon="key" href="/issuing/getting-started/authentication">
    Learn more about API authentication
  </Card>

  <Card title="Error Handling" icon="exclamation-triangle" href="/issuing/getting-started/requests-responses">
    Understand error responses
  </Card>

  <Card title="Webhooks" icon="webhook" href="/issuing/guides/webhooks-1">
    Set up real-time notifications
  </Card>

  <Card title="API Reference" icon="book" href="/issuing/api-reference/openapi">
    Explore all endpoints
  </Card>
</CardGroup>
