Generador de Facturación
Genera, firma y envía comprobantes electrónicos a SUNAT u OSE.
Endpoint de Generación
https://api.contawebaym.com/generadorxml/api/v1/generarDEXMLV21
Paso obligatorio: autenticación
Antes de utilizar cualquier endpoint del generador, debes obtener tus credenciales en Autenticación.
Luego envía siempre:
Authorization: Bearer <ACCESS_TOKEN>
y Token: <TOKEN_BD>.
Cómo funciona el generadorxml
Flujo que sigue una solicitud desde la autenticación hasta la respuesta de SUNAT u OSE.
Paso 1
Autenticación
Obtén access_token y tokenBD.
Paso 2
Envía el request
Incluye Authorization, Token y el JSON.
Paso 3
GeneradorXML
Valida, genera y firma el XML.
Paso 4
SUNAT / OSE
Procesa el documento electrónico.
Paso 5
Respuesta
Recibe el estado y los archivos o un ticket.
Respuesta directa
Comprobantes, percepciones y retenciones devuelven estado, XML, PDF y CDR.
Respuesta con ticket
Guías y bajas pueden requerir una consulta posterior para obtener el resultado final.
Endpoints del generadorxml
Rutas productivas verificadas en el servicio. Abre cada operación para consultar el request de la colección.
POST
Percepción
https://api.contawebaym.com/generadorxml/api/v1/generarDEXMLV21
https://api.contawebaym.com/generadorxml/api/v1/generarDEXMLV21
POST
Retención
https://api.contawebaym.com/generadorxml/api/v1/generarDEXMLV21
https://api.contawebaym.com/generadorxml/api/v1/generarDEXMLV21
POST
Anulación de retención
https://api.contawebaym.com/generadorxml/api/v1/generarRDBaja2_1
https://api.contawebaym.com/generadorxml/api/v1/generarRDBaja2_1
POST
Consultar ticket SUNAT
https://api.contawebaym.com/generadorxml/api/v1/getStatusSunat
https://api.contawebaym.com/generadorxml/api/v1/getStatusSunat
POST
Guía de remisión
https://api.contawebaym.com/generadorxml/api/v1/generarGuideDEXMLV21
https://api.contawebaym.com/generadorxml/api/v1/generarGuideDEXMLV21
GET
Consultar ticket de guía
https://api.contawebaym.com/generadorxml/api/v1/consultaTicket
https://api.contawebaym.com/generadorxml/api/v1/consultaTicket
Ambiente SUNAT de la empresa
Consulta el ambiente configurado antes de emitir. El cambio se aplica a la empresa autenticada.
BETA
Pruebas SUNAT. COD_SUNAT = 1.
PRODUCCION
Envío real a SUNAT. COD_SUNAT = 3.
OSE_PRODUCCION
Envío real por Nubefact. COD_SUNAT = 4.
Código 2 no disponible
COD_SUNAT = 2 no está operativo. No lo utilices.
Usa series exclusivas para pruebas
En BETA usa una serie y un correlativo exclusivos, por ejemplo
F099 o B099.
Nunca reutilices una serie real ni alternes la misma serie entre BETA y PRODUCCIÓN. Las pruebas pueden consumir correlativos internos y afectar la serie productiva.
Flujo recomendado
- Consulta el ambiente con
GET. - Si corresponde, cámbialo con
PATCHy vuelve a verificarlo. - Genera el comprobante con una serie adecuada para ese ambiente.
1. Consultar el ambiente actual
https://api.contawebaym.com/operacion/api/v1/admin/empresas/{ruc}/ambiente-sunat
2. Cambiar el ambiente
https://api.contawebaym.com/operacion/api/v1/admin/empresas/{ruc}/ambiente-sunat
El RUC debe coincidir con el token.
Respuesta del cambio
| Código HTTP | Qué revisar |
|---|---|
| 400 | RUC, ambiente o motivo inválido. |
| 401 | Access token ausente, vencido o inválido. |
| 403 | El RUC no pertenece al token o falta el permiso write. |
| 404 | La empresa no tiene un parámetro activo COD_SUNAT. |
| 409 | COD_SUNAT contiene un valor no admitido. Solo se aceptan 1, 3 y 4; el código 2 no está operativo. |
Estructura del Payload (JSON)
El envío de un comprobante a SUNAT requiere más de 60 parámetros en total. Para facilitar su
comprensión, los hemos agrupado lógicamente. Todos los campos pertenecen al objeto cab a
menos que se indique que son arreglos (items o cuotas).
1. Datos del Documento (Cabecera)
| Campo | Descripción |
|---|---|
| cab.docu_tipodocumento |
Código SUNAT del comprobante. Los más comunes son:
|
| cab.docu_serie | Serie del comprobante (Ej. F001,
BB04).
|
| cab.docu_numero | Correlativo del documento (Ej. 00002816).
|
| cab.docu_fecha_emision | Fecha en formato YYYY-MM-DD. |
| cab.docu_moneda | Código internacional (PEN, USD).
|
2. Datos de Emisor y Cliente
| Campo | Descripción |
|---|---|
| cab.empr_nroruc | RUC de la empresa emisora. |
| cab.clie_tipodoc | Tipo de documento del cliente (Ej. 1=DNI,
6=RUC).
|
| cab.clie_numero | Número de documento del cliente. |
3. Importes y Totales
| cab.docu_total_gravada | Sumatoria de ítems gravados con IGV. |
| cab.docu_total_exonerada | Sumatoria de ítems exonerados (Ej. tipo 20). |
| cab.docu_total_igv | Monto total del IGV calculado. |
| cab.docu_total | Monto final a cobrar. Debe cuadrar con la suma de gravada + inafecta + exonerada + IGV + cargos. |
4. Arrays de Detalle
| items [ ] |
Arreglo de productos/servicios. Cada objeto debe incluir:
item_unidad_medida (Ej. NIU), item_cantidad,
item_valor_unitario y item_tipo_igv. *Nota: Si el ítem es exonerado, el tipo de IGV suele ser "20". |
| cuotas [ ] | Define la forma de pago (Contado o a crédito
con sus respectivas cuotas). |
Ejemplo
El envío es simple, este es un ejemplo de la generación de una factura electrónica con sus respectivos items.
TIP
También puedes consultar nuestras preguntas frecuentes y listado de errores para saber el significado de cada código que responde la SUNAT y cómo manejar un documento rechazado u observado.