---
title: "Create a new BRGC batch"
method: POST
path: "/brgc-batches"
tags: ["BRGC Batches"]
---

# Create a new BRGC batch

`POST /brgc-batches`

Creates a new BRGC batch and charges your account. The process is:
1. Balance is checked to ensure you have sufficient funds
2. Batch generation is queued (async job)
3. Cards are generated and account is charged
4. CSV file with all card codes is sent to your email within 1 hour
5. You can create your batch with EUR or USD cards, and pay with EUR, USD, or BTC

**Limits**:
- Maximum 50,000 cards per batch (total across all denominations)
- Maximum 10 different denominations per batch
- Maximum 10,000 cards per denomination
- Card value: 0.01 to 10,000 per card
- Batch ID: 1-50 characters, alphanumeric with hyphens/underscores only

**Rate Limit**: 60 requests per 10 minutes

## Request body

- CreateBRGCBatchRequest
  - `id` string, required — A unique identifier for your batch. Must be alphanumeric with hyphens/underscores only. A random suffix will be added server-side.
  - `count_and_value_list` object[], required — Array of card denominations to generate. Maximum 10 different denominations.
    - `count` integer — Number of cards for this denomination
    - `value` number — Value per card in batch currency
  - `batch_currency` 'EUR' | 'USD', required — Currency for the gift card values
  - `payment_currency` 'EUR' | 'USD' | 'BTC', required — Currency to charge your account. If different from batch_currency, conversion is applied automatically.
  - `expiration_date` string, date-time — Optional expiration date (ISO 8601). Must be between now and 1 year from now. Defaults to 1 year if not specified.

## Response `202`

Batch queued successfully

- BRGCBatchCreateResponse
  - `meta` object
    - `_endpoint` string
  - `message` string
  - `data` object
    - `batch_id` string
    - `status` string
    - `total_amount` number
    - `total_quantity` integer
    - `batch_currency` string
    - `payment_currency` string
    - `expiration_date` string, date-time

## Other responses

- `400` — Bad request (validation error, insufficient balance, or limit exceeded)
- `403` — Feature not enabled for your account

---

[API](https://skmtc.dev/bitrefill/apis/bitrefill-api-documentation.md) · [All operations](https://skmtc.dev/bitrefill/apis/bitrefill-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/bitrefill/bitrefill-api-documentation/revisions/09e1bde6bae5/schema)
