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

# Quickstart

> Make your first API call in under 5 minutes.

## Before you start

You'll need a Dime Payments API token. If you don't have one yet, see [Authentication](/guides/authentication).

You'll also need a merchant SID -- the unique ID for the merchant account you're processing payments for. You can find it in the dashboard or by calling the [List Merchants](/api-reference/merchant-management/list-merchants) endpoint.

## Install an SDK

Pick your language and install the SDK:

<CodeGroup>
  ```bash PHP theme={null}
  composer require dime-technology/dime-php-sdk
  ```

  ```bash JavaScript theme={null}
  npm install @dime-technology/dime-js-sdk
  ```

  ```bash Python theme={null}
  pip install dime-python-sdk
  ```
</CodeGroup>

## Initialize the client

<CodeGroup>
  ```php PHP theme={null}
  $dime = new \DimePayments\Sdk\Client('your-api-token');
  ```

  ```javascript JavaScript theme={null}
  import { Client } from '@dime-technology/dime-js-sdk';

  const dime = new Client('your-api-token');
  ```

  ```python Python theme={null}
  from dime_payments import Client

  dime = Client('your-api-token')
  ```
</CodeGroup>

## Make your first charge

Charge a credit card using a stored token:

<CodeGroup>
  ```php PHP theme={null}
  $txn = $dime->transactions->chargeCard('YOUR_SID', [
      'amount' => 49.99,
      'token'  => 'tok_abc123',
      'email'  => 'customer@example.com',
  ]);

  echo $txn->transactionStatus; // "Success"
  ```

  ```javascript JavaScript theme={null}
  const txn = await dime.transactions.chargeCard('YOUR_SID', {
    amount: 49.99,
    token: 'tok_abc123',
    email: 'customer@example.com',
  });

  console.log(txn.transactionStatus); // "Success"
  ```

  ```python Python theme={null}
  txn = dime.transactions.charge_card('YOUR_SID', {
      'amount': '49.99',
      'token': 'tok_abc123',
      'email': 'customer@example.com',
  })

  print(txn.transaction_status)  # "Success"
  ```
</CodeGroup>

## Tokenize a card first

If you don't have a token yet, tokenize a card before charging:

<CodeGroup>
  ```php PHP theme={null}
  $token = $dime->transactions->tokenizeCard('YOUR_SID', [
      'cardholder_name' => 'John Doe',
      'card_number'     => '4111111111111111',
      'expiration_date' => '01/2027',
      'cvv'             => '123',
      'billing_address' => ['zip' => '30009'],
  ])->token;

  // Now charge it
  $txn = $dime->transactions->chargeCard('YOUR_SID', [
      'amount' => 49.99,
      'token'  => $token,
  ]);
  ```

  ```javascript JavaScript theme={null}
  const { token } = await dime.transactions.tokenizeCard('YOUR_SID', {
    cardholderName: 'John Doe',
    cardNumber: '4111111111111111',
    expirationDate: '01/2027',
    cvv: '123',
    billingAddress: { zip: '30009' },
  });

  const txn = await dime.transactions.chargeCard('YOUR_SID', {
    amount: 49.99,
    token,
  });
  ```

  ```python Python theme={null}
  result = dime.transactions.tokenize_card('YOUR_SID', {
      'cardholder_name': 'John Doe',
      'card_number': '4111111111111111',
      'expiration_date': '01/2027',
      'billing_address': {'zip': '30009'},
  })

  txn = dime.transactions.charge_card('YOUR_SID', {
      'amount': '49.99',
      'token': result.token,
  })
  ```
</CodeGroup>

## What's next

* [API Reference](/api-reference) — full documentation for every endpoint
* [PHP SDK](/guides/sdks/php) — complete PHP client docs
* [JavaScript SDK](/guides/sdks/javascript) — complete JS client docs
* [Python SDK](/guides/sdks/python) — complete Python client docs
