NewStripe: a buyer with a NIF always gets a standard invoice, and the simplified threshold is deprecated
BeeL
Get startedMulti-NIFVeriFactuRulesStripeAPI referenceChangelog
Authentication

API keys

Authenticate with API keys for server-to-server integrations.


API Keys are the simplest way to authenticate. Create a key in the BeeL. dashboard and include it as a Bearer token in your requests.

Get your API key

  1. Log in to your BeeL. account at app.beel.es
  2. Go to Settings > API Keys
  3. Click Create API Key
  4. Select the environment (sandbox or production)
  5. Choose the scopes your key needs (see Available Scopes)
  6. Copy the key immediately — it's only shown once

Key format

ComponentDescription
Prefixbeel_sk_test_ (sandbox) or beel_sk_live_ (production)
IdentifierUnique alphanumeric string
beel_sk_test_a1b2c3d4e5f6g7h8   # Sandbox
beel_sk_live_x9y8z7w6v5u4t3s2   # Production

Keys are only shown once when created. Store them securely immediately.

Making requests

Include your API Key in the Authorization header:

curl https://app.beel.es/api/v1/companies/{company_id}/invoices \
  -H "Authorization: Bearer beel_sk_test_a1b2c3d4e5f6g7h8"

Code examples

Node.js

const apiKey = process.env.BEEL_API_KEY;

const response = await fetch('https://app.beel.es/api/v1/companies/{company_id}/invoices', {
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'Content-Type': 'application/json'
  }
});

Python

import os
import requests

api_key = os.environ.get('BEEL_API_KEY')

response = requests.get(
    'https://app.beel.es/api/v1/companies/{company_id}/invoices',
    headers={'Authorization': f'Bearer {api_key}'}
)

PHP

$apiKey = getenv('BEEL_API_KEY');

$ch = curl_init('https://app.beel.es/api/v1/companies/{company_id}/invoices');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer ' . $apiKey,
    'Content-Type: application/json'
]);
$response = curl_exec($ch);

Scopes

Each API Key is created with specific scopes that limit which endpoints it can access. If a key doesn't have the required scope for an endpoint, the API returns 403 with error.code INSUFFICIENT_SCOPE.

See Available Scopes for the full list and which endpoints require which scopes.

Rate limits

API Key requests are rate-limited per key — see Rate limits for the current windows and headers.

Key management

  • Keys never expire automatically but can be manually revoked
  • Rotate keys regularly (e.g., every 90 days)
  • Create separate keys for different apps or environments
  • Delete unused keys immediately from the dashboard