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

# Quickstart

> Issue your first e-tax invoice with a test key.

<Note>
  Some links point to the service guide, which is in Korean.
</Note>

## Before you begin

<Steps>
  <Step title="Sign up and create a workspace">
    [Sign up for Bolta](/docs/onboarding/getting-started-google), then create a workspace.
  </Step>

  <Step title="Issue a test API key">
    Create a test key under [Developer Center > API Keys](/docs/developer-center/api-key).

    Test keys start with `test_`, and Bolta simulates every issuance request.
  </Step>

  <Step title="Register an issuer">
    Register the certificate owner with the [Register Issuer API](/en/api-reference/issuer/register-issuer). Use the returned `issuerId` with certificate-management APIs.
  </Step>

  <Step title="Register a certificate">
    Use `issuerId` with the [Retrieve Issuer Certificate Registration URL API](/en/api-reference/certificate/retrieve-issuer-certificate-registration-url), then register the certificate at the returned URL.

    <Info>
      In the test environment, use a test certificate instead of a real certificate to test your integration.
    </Info>
  </Step>

  <Step title="Top up points (for live keys)">
    To call the API with a live key, top up points at the [Developer Center](https://developers.bolta.io) first. API calls fail if your balance is insufficient.

    <Info>
      A test key (`test_`) deducts no points. For detailed pricing, see the [Pricing guide](/en/docs/api-introduction/pricing).
    </Info>
  </Step>
</Steps>

## Your first API call

Once you have a test API key and have registered the issuer's certificate, issue a tax invoice with the curl command below.

```bash theme={"dark"}
curl -X POST https://xapi.bolta.io/v1/taxInvoices/issue \
  -H "Authorization: Basic $(echo -n 'test_YOUR_API_KEY:' | base64)" \
  -H "Bolta-Client-Reference-Id: quickstart-unique-reference-id" \
  -H "Content-Type: application/json" \
  -d '{
    "date": "YYYY-MM-DD",
    "purpose": "RECEIPT",
    "taxType": "TAXABLE",
    "supplier": {
      "identificationNumber": "1234567890",
      "organizationName": "Supplier Company",
      "representativeName": "Gildong Hong",
      "manager": {
        "email": "supplier@example.com"
      }
    },
    "supplied": {
      "identificationNumber": "0987654321",
      "organizationName": "Recipient Company",
      "representativeName": "Chulsoo Kim",
      "managers": [
        {
          "email": "recipient@example.com",
          "telephone": "010-1234-5678"
        }
      ]
    },
    "items": [
      {
        "date": "YYYY-MM-DD",
        "name": "Test item",
        "unitPrice": 10000,
        "quantity": 1,
        "supplyCost": 10000,
        "tax": 1000
      }
    ]
  }'
```

<Info>
  If you also include the recipient manager's mobile phone number, Bolta sends a KakaoTalk notification (AlimTalk) announcing the tax invoice.
</Info>

<Warning>
  Before sending the request, replace `test_YOUR_API_KEY`, both `YYYY-MM-DD` placeholders, and both `identificationNumber` values with real values. The example `identificationNumber` values fail the checksum. Replace `quickstart-unique-reference-id` with a value that has not been used for another tax invoice request. Both `date` fields must be within the issuance deadline. Check the deadline with the [Tax Invoice Issuance Deadline API](/en/docs/api-introduction/tax-invoice-issue-due-date).
</Warning>

## Check the response

If the issuance request succeeds, the API returns an `issuanceKey`.

```json theme={"dark"}
{
  "issuanceKey": "8D529FAD3EBAE050B79CE943CCC7CEDE"
}
```

If you do not receive a response, do not resend the request. Use `quickstart-unique-reference-id` from the example with the [client reference status API](/en/api-reference/tax-invoice-retrieval/retrieve-tax-invoice-by-client-reference) to check whether the request was accepted.

Bolta then sends an issuance-complete notification by [webhook](/en/docs/api-introduction/webhook-events). You can also check the result with the [Retrieve Tax Invoice API](/en/api-reference/tax-invoice-retrieval/retrieve-tax-invoice).

## Next steps

<CardGroup cols={2}>
  <Card title="Authentication guide" href="/en/docs/api-introduction/authentication">
    Learn more about API key authentication and request headers.
  </Card>

  <Card title="Calculating the issuance amount" href="/en/docs/api-introduction/issuance-guide">
    See how per-item amounts are calculated, with examples.
  </Card>

  <Card title="Use cases" href="/en/docs/api-introduction/usecase-b2b">
    Explore scenarios such as B2B transactions, recurring billing, and reverse issuance.
  </Card>

  <Card title="API Reference" href="/en/api-reference/tax-invoice-issuance/issue-tax-invoice">
    Explore the full API endpoint reference.
  </Card>
</CardGroup>
