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

# Charge

> One-step charge via PCI Booking's Universal Payment Gateway. Tokenize once, charge any PSP without handling card data.

Send a token to PCI Booking's [Universal Payment Gateway (UPG)](/use-tokens/universal-payment-gateway) to process an immediate payment. PCI Booking replaces the token with the real card data and forwards the charge request to your configured PSP. You never handle or see card data.

## How It Works

A charge is the simplest UPG operation. You submit:

* A **card token** (obtained during card capture).
* The **PSP name and credentials** (or a stored `credentialsId`).
* The **amount and currency**.

PCI Booking detokenizes the card, constructs the PSP-specific request with real card data, sends it, and returns the PSP's response to you.

## Example: Charge with Inline Credentials

```bash theme={null}
curl -X POST https://service.pcibooking.net/api/paymentgateway \
  -H "Authorization: APIKEY your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "PaymentGateway": {
      "Name": "YourPSPName",
      "Credentials": {
        "MerchantId": "your-merchant-id",
        "ApiKey": "your-psp-api-key"
      }
    },
    "CardToken": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
    "OperationType": "Charge",
    "Amount": 100.00,
    "Currency": "USD"
  }'
```

## Example: Charge with Stored Credentials

If you have pre-stored your PSP credentials via [PSP Credentials](/account-setup/gateway-credentials), pass the `credentialsId` as a query parameter instead:

```bash theme={null}
curl -X POST "https://service.pcibooking.net/api/paymentgateway?credentialsId=my-stored-credentials" \
  -H "Authorization: APIKEY your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "CardToken": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
    "OperationType": "Charge",
    "Amount": 100.00,
    "Currency": "USD"
  }'
```

## Key Points

* **No card data in your request**. Only the token. PCI Booking injects real card details during detokenization.
* **PCI scope reduction**. Your systems never touch sensitive card data.
* **PSP-agnostic**. The same endpoint works regardless of which PSP you route to. Change PSPs by updating your gateway credentials, not your code.
* **Immediate settlement**. Funds are charged and settled in a single step, unlike authorize-and-capture flows. Use a charge when you need immediate payment.

## Next Steps

<CardGroup cols={2}>
  <Card title="Authorize & Capture" icon="book" href="/use-tokens/authorize-capture">
    Split authorization and capture for more control.
  </Card>

  <Card title="Refunds & Voids" icon="book" href="/use-tokens/refunds-voids">
    Reverse or refund completed transactions.
  </Card>

  <Card title="PSP Credentials" icon="book" href="/account-setup/gateway-credentials">
    Set up and manage your PSP credentials.
  </Card>
</CardGroup>
