---
title: "Create a crypto (Plisio) checkout (API key or session)"
method: POST
path: "/api/checkout/crypto"
tags: ["Billing"]
---

# Create a crypto (Plisio) checkout (API key or session)

`POST /api/checkout/crypto`

## Request

- Base URL: `https://verifly.email`
- URL: `https://verifly.email/api/checkout/crypto`
- Auth: HTTP bearer

Create a Plisio crypto invoice for a credit package. Accepts an API key OR a logged-in browser session. Body accepts package_id or packageId and an optional currency (BTC/ETH/LTC/USDT/USDC); when currency is supplied the response includes a raw wallet address + amount + qr_code.

## Request body

- SimpleCryptoRequest
  - `package_id` 'starter' | 'basic' | 'pro' | 'business' | 'enterprise', required
  - `packageId` string: Accepted alias of package_id.
  - `currency` 'BTC' | 'ETH' | 'LTC' | 'USDT' | 'USDC': When set, the response includes a raw wallet address + amount + qr_code.

## Response `200`

Crypto invoice.

- SimpleCryptoResult
  - `success` boolean, required
  - `checkout_url` string, uri, required
  - `url` string, uri: Backwards-compat alias of checkout_url.
  - `invoice_id` string, required
  - `address` string
  - `amount` string
  - `currency` 'BTC' | 'ETH' | 'LTC' | 'USDT' | 'USDC'
  - `qr_code` string
  - `expires_at` string, date-time
  - `package` PackageRef
    - `id` string
    - `name` string
    - `credits` integer
    - `price_usd` string

## Other responses

- `400`: Invalid request or invalid input.
- `401`: Missing or invalid API key.
- `500`: Internal server error. Credits are refunded on failed verification exceptions where possible.

---

[API](https://skmtc.dev/verifly/apis/verifly-email-verification-api.md) · [All operations](https://skmtc.dev/verifly/apis/verifly-email-verification-api/llms.txt) · [OpenAPI document](https://skmtc.dev/verifly/apis/verifly-email-verification-api/revisions/9b2787c04363?raw)
