Companies

Create a company (sub-account)

Creates a new NIF/company under the authenticated account. Invoice series are created automatically with default values.


POST
/v1/companies
AuthorizationBearer <token>

API Key authentication.

Format: Authorization: Bearer beel_sk_<key>

Scopes: API Keys use the same scopes as OAuth2 tokens. Each key is created with specific scopes that limit which endpoints it can access. The required scope for each endpoint is documented in the operation's security section under OAuth2.

Obtaining Keys: API Keys are managed from the BeeL dashboard

Security: API Keys are secret credentials. Do not share them or store them in source code

In: header

nifstring

NIF/CIF of the business

legal_namestring

Legal/fiscal name

entity_typestring

Type of entity

Value in"INDIVIDUAL" | "LEGAL_ENTITY"
address_streetstring
address_number?string
address_postal_codestring
address_citystring
address_provincestring
address_country?string
Default"ES"
legal_form?string

Required for LEGAL_ENTITY

representative_name?string

Required for LEGAL_ENTITY

representative_nif?string

Required for LEGAL_ENTITY

business_display_name?string

Optional display name

tax_type?string
Default"IVA"
tax_percentage?number
Default21
irpf_percentage?number
Default15

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://app.beel.es/api/v1/companies" \  -H "Content-Type: application/json" \  -d '{    "nif": "B12345678",    "legal_name": "Mi Empresa SL",    "entity_type": "INDIVIDUAL",    "address_street": "Calle Mayor",    "address_postal_code": "28001",    "address_city": "Madrid",    "address_province": "Madrid"  }'
{
  "success": true,
  "data": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "nif": "string",
    "legal_name": "string",
    "business_display_name": "string",
    "entity_type": "INDIVIDUAL",
    "is_primary": true,
    "verifactu_status": "NOT_CONFIGURED",
    "can_issue_production_invoices": true,
    "created_at": "2019-08-24T14:15:22Z"
  },
  "meta": {
    "timestamp": "2025-01-15T10:30:00Z",
    "request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}
{
  "success": false,
  "error": {
    "code": "BAD_REQUEST",
    "message": "Invalid request"
  },
  "meta": {
    "timestamp": "2025-01-15T10:30:00Z",
    "request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Authentication required"
  },
  "meta": {
    "timestamp": "2025-01-15T10:30:00Z",
    "request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}
{
  "success": false,
  "error": {
    "code": "CONFLICT",
    "message": "Resource already exists"
  },
  "meta": {
    "timestamp": "2025-01-15T10:30:00Z",
    "request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}
{
  "success": false,
  "error": {
    "code": "UNPROCESSABLE_ENTITY",
    "message": "Data cannot be processed",
    "details": {
      "field": "Specific error description"
    }
  },
  "meta": {
    "timestamp": "2025-01-15T10:30:00Z",
    "request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}
{
  "success": false,
  "error": {
    "code": "INTERNAL_ERROR",
    "message": "Internal server error"
  },
  "meta": {
    "timestamp": "2025-01-15T10:30:00Z",
    "request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}