XmlPeruDevDocs

Crear empresa

Registra un nuevo RUC emisor en la cuenta. El plan y el entorno se pueden cambiar luego.

Autenticación: token Bearer de cuenta (empresas:manage).

Consideraciones

  • Si el RUC ya está registrado en otra cuenta, responde 409: reenvía con "confirm": true para reclamarlo.
  • Crea la empresa en el entorno que indiques; recomendado empezar en demo (01) y pasar a producción cuando esté probada.
  • La respuesta incluye el token de firma de la empresa (ability cpe:sign) ya generado, listo para emitir en /v1/cpe. Se muestra una sola vez: guárdalo.
  • También devuelve las credenciales de login (usuario/password), por si tu integración obtiene el token con POST /api/auth/cpe/token en vez de usar el token directo. Elige el estilo que ya uses.
POSThttps://api.xmlperu.dev/v1/companiesCopiar

Headers

NameTypeDescription
Acceptstringapplication/json
Content-Typestringapplication/json
AuthorizationstringBearer <token>. Genéralo desde tu panel, en Tokens de API.

Body

NameTypeDescription
ruc*stringRUC de 11 dígitos.
business_name*stringRazón social del emisor.
plan_type*string01 por firma · 02 por certificado.
environment*string01 demo · 02 producción.
confirmbooleanEnvíalo en true para reclamar un RUC registrado en otra cuenta (tras un 409).

Ejemplo de solicitud

Copiar
curl -X POST https://api.xmlperu.dev/v1/companies \
  -H "Authorization: Bearer $TOKEN_CUENTA" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "ruc": "20123456789",
  "business_name": "MI EMPRESA SAC",
  "plan_type": "01",
  "environment": "01",
  "confirm": false
}'

Respuesta

201 Creadaapplication/json
{
  "success": true,
  "message": "Empresa registrada.",
  "data": {
    "company": {
      "ruc": "20123456789",
      "business_name": "MI EMPRESA SAC",
      "plan_type": "01",
      "environment": "01",
      "environment_name": "demo",
      "sending": "automatic",
      "receipts": "individual",
      "response": "wait",
      "is_active": true,
      "created_at": "2026-07-27T10:00:00-05:00"
    },
    "token": {
      "ability": "cpe:sign",
      "plain_text_token": "3|9pW51RgVhQ7LUR0yyHNOo6GCfgBL4kAsEHPxb1QW…",
      "note": "Guárdalo ahora: no se vuelve a mostrar. Úsalo como Bearer (token de empresa) para emitir en /v1/cpe."
    },
    "credentials": {
      "username": "a1b2c3d4",
      "password": "e5f6g7h8"
    }
  }
}
409 RUC en otra cuentaapplication/json
Reenvía la misma petición con "confirm": true para reclamarlo.
{
  "success": false,
  "message": "El RUC ya está registrado en otra cuenta. Confirme para reasignarlo."
}
422 Datos inválidosapplication/json
{
  "success": false,
  "message": "The ruc field must be 11 characters.",
  "errors": {
    "ruc": ["The ruc field must be 11 characters."]
  }
}