Buy Batches of Bitrefill Gift Cards

Create batches of Bitrefill Gift Cards for B2B partners.

Bitrefill Gift Card (BRGC) batches allow Business API partners to create bulk gift cards in a single operation. This is ideal for resellers, loyalty programs, and enterprise distribution.

What are BRGC Batches?

BRGC batches let you:

  • Create multiple gift cards in one API call
  • Get bulk gift card codes for distribution
  • Track batch status and individual cards
  • Manage large-scale gift card programs

BRGC batches are only available to Business API accounts. Contact [email protected] if you need access.

Creating a Batch

const response = await fetch(`${BASE_URL}/brgc-batches`, {
  method: 'POST',
  headers,
  body: JSON.stringify({
    quantity: 10,
    value: 25,
    currency: 'USD'
  })
});

const { data: batch } = await response.json();
console.log(`Batch ${batch.batchId} created, status: ${batch.status}`);

Request Parameters

ParameterRequiredDescription
quantityYesNumber of gift cards to create
valueYesValue of each gift card
currencyYesCurrency code (USD, EUR, etc.)

Checking Batch Status

const response = await fetch(`${BASE_URL}/brgc-batches/${batchId}`, { headers });
const { data: batch } = await response.json();

if (batch.status === 'complete') {
  console.log(`${batch.cards.length} cards ready`);
  batch.cards.forEach(card => console.log(card.code));
}

Batch Statuses

StatusDescription
processingBatch is being created
completeAll cards are ready
failedBatch creation failed
partialSome cards failed to create

Listing Batches

const response = await fetch(`${BASE_URL}/brgc-batches?limit=20`, { headers });
const { data: batches } = await response.json();

Complete Example

const API_ID = process.env.BITREFILL_API_ID;
const API_SECRET = process.env.BITREFILL_API_SECRET;
const BASE_URL = 'https://api.bitrefill.com/v2';

const token = Buffer.from(`${API_ID}:${API_SECRET}`).toString('base64');
const headers = {
  'Authorization': `Basic ${token}`,
  'Content-Type': 'application/json'
};

async function createBatch(quantity, value, currency) {
  // Create the batch
  const createRes = await fetch(`${BASE_URL}/brgc-batches`, {
    method: 'POST',
    headers,
    body: JSON.stringify({ quantity, value, currency })
  });
  
  const batch = await createRes.json();
  const batchId = batch.data.batchId;
  
  // Poll for completion
  while (true) {
    const statusRes = await fetch(`${BASE_URL}/brgc-batches/${batchId}`, { headers });
    const status = await statusRes.json();
    
    if (status.data.status === 'complete') {
      return status.data.cards;
    }
    
    if (status.data.status === 'failed') {
      throw new Error('Batch creation failed');
    }
    
    await new Promise(r => setTimeout(r, 2000));
  }
}

// Usage
const cards = await createBatch(10, 25, 'USD');
console.log(`Created ${cards.length} gift cards`);
cards.forEach(card => console.log(card.code));

Best Practices

1. Start Small

Test with small batches before creating large ones.

2. Handle Partial Failures

Check for partial failures where some cards weren't created:

if (batch.status === 'partial') {
  const successfulCards = batch.cards.filter(c => c.status === 'active');
  const failedCount = batch.quantity - successfulCards.length;
  console.log(`${failedCount} cards failed to create`);
}

3. Store Batch IDs

Keep track of batch IDs for auditing and reconciliation.

4. Secure Card Codes

Treat card codes like sensitive data — store encrypted at rest, limit access, and log access for auditing.

Use Cases

Use CaseApproach
Loyalty rewardsCreate batches as rewards are earned
Corporate giftsBulk create for employee programs
ResellingCreate inventory to sell on your platform
Promotional campaignsGenerate codes for marketing campaigns