Empresa del token
Dice a qué empresa pertenece el token de firma y cómo está configurada — sobre todo, en qué entorno.
Autenticación: token Bearer de empresa (cpe:sign).
Consideraciones
- Llámalo al configurar la integración, antes de emitir nada: es la forma de comprobar que el entorno que tu sistema cree tener es el que tiene de verdad.
- Es el único sitio donde un token de firma (
cpe:sign) puede leer su entorno. Ver empresa devuelve lo mismo pero exige el token de la cuenta, que tu sistema no tiene por qué guardar. environmentes el código (01demo ·02producción) yenvironment_namela palabra (demo·production). Son el mismo dato: usa el que te resulte más cómodo comparar.- No consume cupo ni deja rastro: es sólo lectura.
Para qué sirve
Tu sistema tiene su propio interruptor demo/producción y nosotros el nuestro. Si los dos no dicen lo mismo, pasa una de dos cosas y ninguna avisa sola:
- Crees que estás probando y emites comprobantes reales. Hay que anularlos, y la numeración ya se gastó.
- Crees que estás facturando y no estás facturando. Suele descubrirse tarde.
Este endpoint es la comprobación barata: una llamada al guardar la configuración, y sabes en qué entorno estás de verdad antes de emitir el primer comprobante.
Qué hacer con la respuesta
Compara environment con el entorno que tenga configurado tu sistema. Si no
coinciden, el arreglo está en uno de los dos lados y sólo tú sabes cuál es el
correcto: cambia el entorno de la empresa o
cambia el de tu sistema.
Si prefieres que la comprobación ocurra en cada emisión y no sólo al configurar,
puedes además declarar el entorno en la ruta: si
no coincide con el nuestro, respondemos 409 y no se emite nada.
Los otros campos
sending y receipts cambian lo que significa la respuesta de emitir: con
sending: "manual" el comprobante se queda en «por enviar» hasta que lo mandes
tú, y con receipts: "summary" una boleta espera al resumen del día en vez de
irse sola. Si tu integración se comporta distinto de lo que esperabas, mira aquí
antes de buscar el fallo en tu código.
Headers
| Name | Type | Description |
|---|---|---|
| Accept | string | application/json |
| Content-Type | string | application/json |
| Authorization | string | Bearer <token>. Genéralo desde tu panel, en Tokens de API. |
Ejemplo de solicitud
curl -X GET https://api.xmlperu.dev/v1/me \
-H "Authorization: Bearer $TOKEN_EMPRESA" \
-H "Accept: application/json"<?php
$token_empresa = 'pega-aqui-tu-token';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.xmlperu.dev/v1/me');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $token_empresa,
'Accept: application/json',
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);const TOKEN_EMPRESA = 'pega-aqui-tu-token';
const res = await fetch('https://api.xmlperu.dev/v1/me', {
method: 'GET',
headers: {
Authorization: `Bearer ${TOKEN_EMPRESA}`,
Accept: 'application/json',
},
});
const data = await res.json();import requests
TOKEN_EMPRESA = "pega-aqui-tu-token"
headers = {
"Authorization": f"Bearer {TOKEN_EMPRESA}",
"Accept": "application/json",
}
res = requests.get("https://api.xmlperu.dev/v1/me", headers=headers)
data = res.json()Respuesta
{
"success": true,
"message": "Empresa del token.",
"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-01T10:00:00-05:00"
}
}
}{
"success": false,
"message": "Token no asociado a una empresa."
}