XmlPeruDevDocs

Cómo se informan las boletas

Elige si las boletas van sueltas, como una factura, o esperan al resumen del día.

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

Consideraciones

  • Por defecto es individual: cada boleta se manda sola y recibe su propio CDR, en el acto.
  • En resumen, POST /v1/cpe responde estado: "por_resumir" y la boleta queda firmada esperando el resumen del día — un solo documento para todas.
  • La boleta ya es válida al firmarse en los dos modos: se puede imprimir y entregar sin esperar nada.
  • Las notas de crédito y débito no se configuran: heredan del comprobante al que afectan. Una nota de boleta sigue este modo; una de factura va suelta siempre, porque el resumen diario no las admite.
  • Cada boleta consume una firma vaya por donde vaya. El resumen añade una: es un documento y se firma una vez.
PATCHhttps://api.xmlperu.dev/v1/companies/{ruc}/receiptsCopiar

Cuál elegir

Las dos formas son legales y sirven a negocios distintos.

Individual Por resumen
Tras emitir queda en Recibido Por resumir
CDR propio, en el acto el del resumen, por ticket
Para poco volumen punto de venta

Un comercio con pocas boletas las manda sueltas y tiene su constancia al momento. Un punto de venta con cientos las agrupa: un documento al día en vez de trescientos.

curl -X PATCH https://api.xmlperu.dev/v1/companies/$RUC/receipts \
  -H "Authorization: Bearer $TOKEN_CUENTA" \
  -H "Content-Type: application/json" \
  -d '{"mode": "summary"}'

Va en la empresa y no en cada comprobante, igual que quién envía a SUNAT: es una decisión operativa del negocio, no de cada venta.

El estado «Por resumir»

Una boleta que espera su resumen queda en un estado propio y no en «Registrado». La diferencia importa: «Registrado» es un comprobante que se quedó a medias por un fallo, y «Por resumir» es uno que va bien y está esperando su turno. Sin esa distinción no hay forma de saber cuál es cuál.

Headers

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

Parámetros de URL

NameTypeDescription
ruc*stringRUC de 11 dígitos de la empresa.

Body

NameTypeDescription
mode*stringindividual o summary.

Ejemplo de solicitud

Copiar
curl -X PATCH https://api.xmlperu.dev/v1/companies/20123456789/receipts \
  -H "Authorization: Bearer $TOKEN_CUENTA" \
  -H "Accept: application/json"

Respuesta

200 Actualizadoapplication/json
{
  "success": true,
  "message": "Modo de boletas actualizado.",
  "data": {
    "company": {
      "ruc": "20123456789",
      "receipts": "summary"
    }
  }
}
422 Modo inválidoapplication/json
{
  "success": false,
  "message": "The selected modo is invalid."
}