Cambiar plan
Cambia el plan de la empresa entre 01 (por firma) y 02 (por certificado).
Autenticación: token Bearer de cuenta (empresas:manage).
Consideraciones
- Pasar a
02exige que la empresa ya tenga una licencia asignada: se compran y se reparten desde el panel, no se toman por API. Sin licencia responde422. - La vigencia de la licencia arranca con la primera firma en producción, no al asignarla ni al comprarla.
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. |
Parámetros de URL
| Name | Type | Description |
|---|---|---|
| ruc* | string | RUC de 11 dígitos de la empresa. |
Body
| Name | Type | Description |
|---|---|---|
| plan_type* | string | 01 por firma · 02 por certificado. |
Ejemplo de solicitud
Copiar
curl -X PATCH https://api.xmlperu.dev/v1/companies/20123456789/plan \
-H "Authorization: Bearer $TOKEN_CUENTA" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"plan_type": "02"
}'Copiar
<?php
$token_cuenta = 'pega-aqui-tu-token';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.xmlperu.dev/v1/companies/20123456789/plan');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $token_cuenta,
'Accept: application/json',
'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, <<<JSON
{
"plan_type": "02"
}
JSON);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);Copiar
const TOKEN_CUENTA = 'pega-aqui-tu-token';
const res = await fetch('https://api.xmlperu.dev/v1/companies/20123456789/plan', {
method: 'PATCH',
headers: {
Authorization: `Bearer ${TOKEN_CUENTA}`,
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"plan_type": "02"
}),
});
const data = await res.json();Copiar
import requests
TOKEN_CUENTA = "pega-aqui-tu-token"
headers = {
"Authorization": f"Bearer {TOKEN_CUENTA}",
"Accept": "application/json",
}
payload = {
"plan_type": "02"
}
res = requests.patch("https://api.xmlperu.dev/v1/companies/20123456789/plan", json=payload, headers=headers)
data = res.json()Respuesta
200 Actualizadoapplication/json
{
"success": true,
"message": "Plan actualizado.",
"data": {
"company": {
"ruc": "20123456789",
"business_name": "MI EMPRESA SAC",
"plan_type": "02",
"environment": "02",
"environment_name": "production",
"sending": "automatic",
"receipts": "individual",
"response": "wait",
"is_active": true,
"created_at": "2026-07-01T10:00:00-05:00"
}
}
}422 Sin licenciaapplication/json
Se pidió el plan
02 pero la empresa no tiene ninguna licencia asignada.{
"success": false,
"message": "La empresa no tiene una licencia por certificado asignada. Las licencias se compran y se asignan desde el panel."
}404 No encontradaapplication/json
{
"success": false,
"message": "Empresa no encontrada."
}