Nubo Nubo API ← Volver a Nubo
Integración

Documentación de la API

Emite facturas, boletas, notas de crédito y débito, y anula comprobantes ante SUNAT desde tu propio sistema. Autentica con tu API_TOKEN y consume los endpoints REST. El token se genera dentro de tu cuenta en Integración API > Configuración.

Endpoints disponibles
Reemplaza tu-empresa.nubo.devex.pe por el dominio de tu cuenta.
Documents

Factura electrónica

Emite una factura usando codigo_tipo_documento = 01.

POST https://tu-empresa.nubo.devex.pe/api/integration/documents

Authorizations

Authorization string header required

Enviar como Bearer API_TOKEN. El token se configura por usuario en Integracion API > Configuracion o en la ventana de Usuarios.

X-Api-Token string header optional

Alternativa para emision externa: puedes enviar el mismo token en este header si no deseas usar Bearer.

Origin string header optional

Si se envia, debe coincidir con un dominio permitido. Si no se envia, la validacion usa la IP publica del cliente.

Accept string header required

Usar application/json.

Content-Type string header required

Usar application/json para las APIs con body.

Body application/json

serie_documento string required

Serie habilitada para el establecimiento del usuario emisor. Ejemplos: F001, B001, FC01, FD01.

numero_documento string|number optional

Puede omitirse para factura y boleta. El backend asigna el correlativo automatico de la serie cuando llega vacio o como #.

fecha_de_emision date required

Fecha del comprobante en formato YYYY-MM-DD.

hora_de_emision time required

Hora del comprobante en formato HH:mm:ss.

fecha_de_vencimiento date optional

Fecha de vencimiento. Aplica sobre todo en credito; si no aplica puede igualarse a la fecha de emision.

codigo_tipo_documento enum<string> required

01 factura, 03 boleta, 07 nota de credito, 08 nota de debito.

codigo_tipo_operacion string required

Tipo de operacion SUNAT. Para venta interna gravada normalmente se usa 0101.

codigo_tipo_moneda string required

Moneda ISO del comprobante. Ejemplos: PEN, USD.

factor_tipo_de_cambio decimal optional

Tipo de cambio cuando la moneda no es soles. Para PEN puede enviarse 1.

numero_orden_de_compra string optional

Orden de compra o referencia comercial del cliente.

datos_del_cliente_o_receptor object required

Objeto con los datos tributarios y de contacto del cliente receptor.

datos_del_cliente_o_receptor.codigo_tipo_documento_identidad string required

6 RUC, 1 DNI, 0 sin documento u otros codigos SUNAT validos.

datos_del_cliente_o_receptor.numero_documento string required

Numero del documento de identidad. Para factura debe ser RUC valido.

datos_del_cliente_o_receptor.apellidos_y_nombres_o_razon_social string required

Nombre completo o razon social del receptor.

datos_del_cliente_o_receptor.codigo_pais string optional

Codigo pais ISO. Para Peru usar PE.

datos_del_cliente_o_receptor.ubigeo string optional

Ubigeo del domicilio fiscal o comercial.

datos_del_cliente_o_receptor.direccion string optional

Direccion del cliente.

datos_del_cliente_o_receptor.correo_electronico string optional

Correo para envio del comprobante si la accion de email esta activa.

datos_del_cliente_o_receptor.telefono string optional

Telefono de contacto del receptor.

items array<object> required

Arreglo con una o mas lineas del comprobante. Cada objeto representa un producto o servicio.

items[].codigo_interno string optional

Codigo interno del producto o servicio en el sistema externo.

items[].codigo_producto_sunat string optional

Codigo de producto SUNAT cuando aplique.

items[].descripcion string required

Descripcion que se imprimira en el comprobante.

items[].unidad_de_medida string required

Unidad SUNAT. Para servicios o unidades comunes suele ser NIU.

items[].cantidad decimal required

Cantidad vendida.

items[].valor_unitario decimal required

Valor unitario sin IGV.

items[].codigo_tipo_precio string required

Codigo de tipo de precio. Normalmente 01 para precio unitario con IGV.

items[].precio_unitario decimal required

Precio unitario con impuestos incluidos.

items[].codigo_tipo_afectacion_igv string required

Afectacion IGV. Ejemplo 10 para gravado operacion onerosa.

items[].total_base_igv decimal required

Base imponible del IGV de la linea.

items[].porcentaje_igv decimal required

Porcentaje IGV aplicado. Normalmente 18.

items[].total_igv decimal required

Monto de IGV de la linea.

items[].total_impuestos decimal required

Suma de impuestos de la linea.

items[].total_valor_item decimal required

Valor total de la linea sin impuestos.

items[].total_item decimal required

Importe total de la linea con impuestos.

items[].modelo string optional

Modelo comercial del producto si se desea imprimir en el PDF.

items[].lote string optional

Lote del producto cuando aplique.

items[].series array<string> optional

Series individuales del producto cuando aplique.

totales object required

Objeto con los importes globales del comprobante.

totales.total_operaciones_gravadas decimal optional

Suma de operaciones gravadas sin IGV.

totales.total_operaciones_exoneradas decimal optional

Suma de operaciones exoneradas.

totales.total_operaciones_inafectas decimal optional

Suma de operaciones inafectas.

totales.total_igv decimal required

IGV total del comprobante.

totales.total_impuestos decimal required

Suma de impuestos globales.

totales.total_valor decimal required

Valor de venta sin impuestos.

totales.subtotal_venta decimal required

Subtotal con impuestos antes de redondeos o descuentos globales.

totales.total_venta decimal required

Total final a pagar.

pagos array<object> optional

Pagos aplicados al momento de emitir.

pagos[].codigo_metodo_pago string optional

Metodo de pago configurado. Ejemplo: 01 efectivo.

pagos[].codigo_destino_pago string optional

Destino del pago configurado cuando el metodo lo requiera.

pagos[].monto decimal optional

Monto pagado.

acciones object optional

Objeto para controlar salidas posteriores a la emision.

acciones.enviar_xml_firmado boolean optional

Genera y firma XML cuando llega en true.

acciones.enviar_email boolean optional

Envia email al cliente si existe correo disponible.

acciones.formato_pdf string optional

Formato del PDF. Ejemplo: a4, ticket.

Factura electrónicacURL
curl --request POST \
  --url https://tu-empresa.nubo.devex.pe/api/integration/documents \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer API_TOKEN' \
  --data '{
    "serie_documento": "F001",
    "fecha_de_emision": "2026-06-03",
    "hora_de_emision": "10:30:00",
    "codigo_tipo_documento": "01",
    "codigo_tipo_operacion": "0101",
    "codigo_tipo_moneda": "PEN",
    "datos_del_cliente_o_receptor": {
      "codigo_tipo_documento_identidad": "6",
      "numero_documento": "20123456789",
      "apellidos_y_nombres_o_razon_social": "CLIENTE DEMO S.A.C.",
      "direccion": "Av. Demo 123"
    },
    "items": [{
      "descripcion": "Servicio de integracion",
      "unidad_de_medida": "NIU",
      "cantidad": 1,
      "valor_unitario": 100,
      "codigo_tipo_precio": "01",
      "precio_unitario": 118,
      "codigo_tipo_afectacion_igv": "10",
      "total_base_igv": 100,
      "porcentaje_igv": 18,
      "total_igv": 18,
      "total_impuestos": 18,
      "total_valor_item": 100,
      "total_item": 118
    }],
    "totales": {
      "total_operaciones_gravadas": 100,
      "total_igv": 18,
      "total_impuestos": 18,
      "total_valor": 100,
      "subtotal_venta": 118,
      "total_venta": 118
    }
  }'
Responseapplication/json
{
  "success": true,
  "data": {
    "number": "F001-8",
    "external_id": "uuid",
    "state_type_description": "Aceptado",
    "id": 123
  },
  "links": {
    "xml": "https://tu-empresa.nubo.devex.pe/downloads/document/xml/uuid",
    "pdf": "https://tu-empresa.nubo.devex.pe/downloads/document/pdf/uuid",
    "cdr": "https://tu-empresa.nubo.devex.pe/downloads/document/cdr/uuid"
  }
}
Documents

Boleta electrónica

Emite una boleta usando codigo_tipo_documento = 03.

POST https://tu-empresa.nubo.devex.pe/api/integration/documents

Authorizations

Authorization string header required

Enviar como Bearer API_TOKEN. El token se configura por usuario en Integracion API > Configuracion o en la ventana de Usuarios.

X-Api-Token string header optional

Alternativa para emision externa: puedes enviar el mismo token en este header si no deseas usar Bearer.

Origin string header optional

Si se envia, debe coincidir con un dominio permitido. Si no se envia, la validacion usa la IP publica del cliente.

Accept string header required

Usar application/json.

Content-Type string header required

Usar application/json para las APIs con body.

Body application/json

serie_documento string required

Serie habilitada para el establecimiento del usuario emisor. Ejemplos: F001, B001, FC01, FD01.

numero_documento string|number optional

Puede omitirse para factura y boleta. El backend asigna el correlativo automatico de la serie cuando llega vacio o como #.

fecha_de_emision date required

Fecha del comprobante en formato YYYY-MM-DD.

hora_de_emision time required

Hora del comprobante en formato HH:mm:ss.

fecha_de_vencimiento date optional

Fecha de vencimiento. Aplica sobre todo en credito; si no aplica puede igualarse a la fecha de emision.

codigo_tipo_documento enum<string> required

01 factura, 03 boleta, 07 nota de credito, 08 nota de debito.

codigo_tipo_operacion string required

Tipo de operacion SUNAT. Para venta interna gravada normalmente se usa 0101.

codigo_tipo_moneda string required

Moneda ISO del comprobante. Ejemplos: PEN, USD.

factor_tipo_de_cambio decimal optional

Tipo de cambio cuando la moneda no es soles. Para PEN puede enviarse 1.

numero_orden_de_compra string optional

Orden de compra o referencia comercial del cliente.

datos_del_cliente_o_receptor object required

Objeto con los datos tributarios y de contacto del cliente receptor.

datos_del_cliente_o_receptor.codigo_tipo_documento_identidad string required

6 RUC, 1 DNI, 0 sin documento u otros codigos SUNAT validos.

datos_del_cliente_o_receptor.numero_documento string required

Numero del documento de identidad. Para factura debe ser RUC valido.

datos_del_cliente_o_receptor.apellidos_y_nombres_o_razon_social string required

Nombre completo o razon social del receptor.

datos_del_cliente_o_receptor.codigo_pais string optional

Codigo pais ISO. Para Peru usar PE.

datos_del_cliente_o_receptor.ubigeo string optional

Ubigeo del domicilio fiscal o comercial.

datos_del_cliente_o_receptor.direccion string optional

Direccion del cliente.

datos_del_cliente_o_receptor.correo_electronico string optional

Correo para envio del comprobante si la accion de email esta activa.

datos_del_cliente_o_receptor.telefono string optional

Telefono de contacto del receptor.

items array<object> required

Arreglo con una o mas lineas del comprobante. Cada objeto representa un producto o servicio.

items[].codigo_interno string optional

Codigo interno del producto o servicio en el sistema externo.

items[].codigo_producto_sunat string optional

Codigo de producto SUNAT cuando aplique.

items[].descripcion string required

Descripcion que se imprimira en el comprobante.

items[].unidad_de_medida string required

Unidad SUNAT. Para servicios o unidades comunes suele ser NIU.

items[].cantidad decimal required

Cantidad vendida.

items[].valor_unitario decimal required

Valor unitario sin IGV.

items[].codigo_tipo_precio string required

Codigo de tipo de precio. Normalmente 01 para precio unitario con IGV.

items[].precio_unitario decimal required

Precio unitario con impuestos incluidos.

items[].codigo_tipo_afectacion_igv string required

Afectacion IGV. Ejemplo 10 para gravado operacion onerosa.

items[].total_base_igv decimal required

Base imponible del IGV de la linea.

items[].porcentaje_igv decimal required

Porcentaje IGV aplicado. Normalmente 18.

items[].total_igv decimal required

Monto de IGV de la linea.

items[].total_impuestos decimal required

Suma de impuestos de la linea.

items[].total_valor_item decimal required

Valor total de la linea sin impuestos.

items[].total_item decimal required

Importe total de la linea con impuestos.

items[].modelo string optional

Modelo comercial del producto si se desea imprimir en el PDF.

items[].lote string optional

Lote del producto cuando aplique.

items[].series array<string> optional

Series individuales del producto cuando aplique.

totales object required

Objeto con los importes globales del comprobante.

totales.total_operaciones_gravadas decimal optional

Suma de operaciones gravadas sin IGV.

totales.total_operaciones_exoneradas decimal optional

Suma de operaciones exoneradas.

totales.total_operaciones_inafectas decimal optional

Suma de operaciones inafectas.

totales.total_igv decimal required

IGV total del comprobante.

totales.total_impuestos decimal required

Suma de impuestos globales.

totales.total_valor decimal required

Valor de venta sin impuestos.

totales.subtotal_venta decimal required

Subtotal con impuestos antes de redondeos o descuentos globales.

totales.total_venta decimal required

Total final a pagar.

pagos array<object> optional

Pagos aplicados al momento de emitir.

pagos[].codigo_metodo_pago string optional

Metodo de pago configurado. Ejemplo: 01 efectivo.

pagos[].codigo_destino_pago string optional

Destino del pago configurado cuando el metodo lo requiera.

pagos[].monto decimal optional

Monto pagado.

acciones object optional

Objeto para controlar salidas posteriores a la emision.

acciones.enviar_xml_firmado boolean optional

Genera y firma XML cuando llega en true.

acciones.enviar_email boolean optional

Envia email al cliente si existe correo disponible.

acciones.formato_pdf string optional

Formato del PDF. Ejemplo: a4, ticket.

Boleta electrónicacURL
curl --request POST \
  --url https://tu-empresa.nubo.devex.pe/api/integration/documents \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer API_TOKEN' \
  --data '{
    "serie_documento": "B001",
    "fecha_de_emision": "2026-06-03",
    "hora_de_emision": "10:30:00",
    "codigo_tipo_documento": "03",
    "codigo_tipo_operacion": "0101",
    "codigo_tipo_moneda": "PEN",
    "datos_del_cliente_o_receptor": {
      "codigo_tipo_documento_identidad": "1",
      "numero_documento": "12345678",
      "apellidos_y_nombres_o_razon_social": "CLIENTE BOLETA"
    },
    "items": [{
      "descripcion": "Producto demo",
      "unidad_de_medida": "NIU",
      "cantidad": 1,
      "valor_unitario": 50,
      "codigo_tipo_precio": "01",
      "precio_unitario": 59,
      "codigo_tipo_afectacion_igv": "10",
      "total_base_igv": 50,
      "porcentaje_igv": 18,
      "total_igv": 9,
      "total_impuestos": 9,
      "total_valor_item": 50,
      "total_item": 59
    }],
    "totales": {
      "total_operaciones_gravadas": 50,
      "total_igv": 9,
      "total_impuestos": 9,
      "total_valor": 50,
      "subtotal_venta": 59,
      "total_venta": 59
    }
  }'
Responseapplication/json
{
  "success": true,
  "data": {
    "number": "B001-15",
    "external_id": "uuid",
    "state_type_description": "Aceptado"
  },
  "links": {
    "pdf": "https://tu-empresa.nubo.devex.pe/downloads/document/pdf/uuid"
  }
}
Documents

Nota de crédito

Emite una nota de credito usando codigo_tipo_documento = 07. Requiere tipo de nota, sustento, documento afectado, items y totales.

Notas
  • El backend exige codigo_tipo_nota y motivo_o_sustento_de_nota para 07.
  • Puedes referenciar el documento afectado por external_id o por serie, numero y tipo.
POST https://tu-empresa.nubo.devex.pe/api/integration/documents

Authorizations

Authorization string header required

Enviar como Bearer API_TOKEN. El token se configura por usuario en Integracion API > Configuracion o en la ventana de Usuarios.

X-Api-Token string header optional

Alternativa para emision externa: puedes enviar el mismo token en este header si no deseas usar Bearer.

Origin string header optional

Si se envia, debe coincidir con un dominio permitido. Si no se envia, la validacion usa la IP publica del cliente.

Accept string header required

Usar application/json.

Content-Type string header required

Usar application/json para las APIs con body.

Body application/json

documento_afectado object required

Documento original que sera modificado por la nota.

documento_afectado.serie_documento string optional

Serie del comprobante afectado. Requerido si no envias documento_afectado.external_id.

documento_afectado.numero_documento string|number optional

Numero correlativo del comprobante afectado. Requerido si no envias documento_afectado.external_id.

documento_afectado.codigo_tipo_documento string optional

Tipo del comprobante afectado: 01 factura o 03 boleta. Requerido si no envias documento_afectado.external_id.

documento_afectado.external_id string optional

External ID del comprobante afectado. Si lo envias, el backend ubica el documento original y no necesitas serie, numero y tipo.

codigo_tipo_nota string required

Codigo SUNAT del motivo. Credito: 01 anulacion, 02 anulacion por error en RUC, 03 correccion descripcion, 04 descuento global, 05 descuento por item, 06 devolucion total, 07 devolucion por item, 08 bonificacion, 09 disminucion en valor, 10 otros. Debito: 01 intereses por mora, 02 aumento en valor, 03 penalidades/otros.

motivo_o_sustento_de_nota string required

Sustento visible del ajuste. Ejemplo: anulacion de operacion, descuento global, intereses por mora.

serie_documento string required

Serie habilitada para el establecimiento del usuario emisor. Ejemplos: F001, B001, FC01, FD01.

numero_documento string|number optional

Puede omitirse para factura y boleta. El backend asigna el correlativo automatico de la serie cuando llega vacio o como #.

fecha_de_emision date required

Fecha del comprobante en formato YYYY-MM-DD.

hora_de_emision time required

Hora del comprobante en formato HH:mm:ss.

fecha_de_vencimiento date optional

Fecha de vencimiento. Aplica sobre todo en credito; si no aplica puede igualarse a la fecha de emision.

codigo_tipo_documento enum<string> required

01 factura, 03 boleta, 07 nota de credito, 08 nota de debito.

codigo_tipo_operacion string optional

Opcional para notas. En facturas y boletas representa el tipo de operacion SUNAT.

codigo_tipo_moneda string required

Moneda ISO del comprobante. Ejemplos: PEN, USD.

factor_tipo_de_cambio decimal optional

Tipo de cambio cuando la moneda no es soles. Para PEN puede enviarse 1.

numero_orden_de_compra string optional

Orden de compra o referencia comercial del cliente.

datos_del_cliente_o_receptor object required

Objeto con los datos tributarios y de contacto del cliente receptor.

datos_del_cliente_o_receptor.codigo_tipo_documento_identidad string required

6 RUC, 1 DNI, 0 sin documento u otros codigos SUNAT validos.

datos_del_cliente_o_receptor.numero_documento string required

Numero del documento de identidad. Para factura debe ser RUC valido.

datos_del_cliente_o_receptor.apellidos_y_nombres_o_razon_social string required

Nombre completo o razon social del receptor.

datos_del_cliente_o_receptor.codigo_pais string optional

Codigo pais ISO. Para Peru usar PE.

datos_del_cliente_o_receptor.ubigeo string optional

Ubigeo del domicilio fiscal o comercial.

datos_del_cliente_o_receptor.direccion string optional

Direccion del cliente.

datos_del_cliente_o_receptor.correo_electronico string optional

Correo para envio del comprobante si la accion de email esta activa.

datos_del_cliente_o_receptor.telefono string optional

Telefono de contacto del receptor.

items array<object> required

Arreglo con una o mas lineas del comprobante. Cada objeto representa un producto o servicio.

items[].codigo_interno string optional

Codigo interno del producto o servicio en el sistema externo.

items[].codigo_producto_sunat string optional

Codigo de producto SUNAT cuando aplique.

items[].descripcion string required

Descripcion que se imprimira en el comprobante.

items[].unidad_de_medida string required

Unidad SUNAT. Para servicios o unidades comunes suele ser NIU.

items[].cantidad decimal required

Cantidad vendida.

items[].valor_unitario decimal required

Valor unitario sin IGV.

items[].codigo_tipo_precio string required

Codigo de tipo de precio. Normalmente 01 para precio unitario con IGV.

items[].precio_unitario decimal required

Precio unitario con impuestos incluidos.

items[].codigo_tipo_afectacion_igv string required

Afectacion IGV. Ejemplo 10 para gravado operacion onerosa.

items[].total_base_igv decimal required

Base imponible del IGV de la linea.

items[].porcentaje_igv decimal required

Porcentaje IGV aplicado. Normalmente 18.

items[].total_igv decimal required

Monto de IGV de la linea.

items[].total_impuestos decimal required

Suma de impuestos de la linea.

items[].total_valor_item decimal required

Valor total de la linea sin impuestos.

items[].total_item decimal required

Importe total de la linea con impuestos.

items[].modelo string optional

Modelo comercial del producto si se desea imprimir en el PDF.

items[].lote string optional

Lote del producto cuando aplique.

items[].series array<string> optional

Series individuales del producto cuando aplique.

totales object required

Objeto con los importes globales del comprobante.

totales.total_operaciones_gravadas decimal optional

Suma de operaciones gravadas sin IGV.

totales.total_operaciones_exoneradas decimal optional

Suma de operaciones exoneradas.

totales.total_operaciones_inafectas decimal optional

Suma de operaciones inafectas.

totales.total_igv decimal required

IGV total del comprobante.

totales.total_impuestos decimal required

Suma de impuestos globales.

totales.total_valor decimal required

Valor de venta sin impuestos.

totales.subtotal_venta decimal required

Subtotal con impuestos antes de redondeos o descuentos globales.

totales.total_venta decimal required

Total final a pagar.

pagos array<object> optional

Pagos aplicados al momento de emitir.

pagos[].codigo_metodo_pago string optional

Metodo de pago configurado. Ejemplo: 01 efectivo.

pagos[].codigo_destino_pago string optional

Destino del pago configurado cuando el metodo lo requiera.

pagos[].monto decimal optional

Monto pagado.

acciones object optional

Objeto para controlar salidas posteriores a la emision.

acciones.enviar_xml_firmado boolean optional

Genera y firma XML cuando llega en true.

acciones.enviar_email boolean optional

Envia email al cliente si existe correo disponible.

acciones.formato_pdf string optional

Formato del PDF. Ejemplo: a4, ticket.

Nota de créditocURL
curl --request POST \
  --url https://tu-empresa.nubo.devex.pe/api/integration/documents \
  --header 'Authorization: Bearer API_TOKEN' \
  --data '{
    "serie_documento": "FC01",
    "fecha_de_emision": "2026-06-03",
    "codigo_tipo_documento": "07",
    "codigo_tipo_moneda": "PEN",
    "codigo_tipo_nota": "01",
    "motivo_o_sustento_de_nota": "Anulacion de la operacion",
    "documento_afectado": { "external_id": "external-id-afectado" },
    "datos_del_cliente_o_receptor": {
      "codigo_tipo_documento_identidad": "6",
      "numero_documento": "20123456789",
      "apellidos_y_nombres_o_razon_social": "CLIENTE DEMO S.A.C."
    },
    "items": [{ "descripcion": "Anulacion de servicio", "unidad_de_medida": "NIU", "cantidad": 1, "valor_unitario": 100, "codigo_tipo_precio": "01", "precio_unitario": 118, "codigo_tipo_afectacion_igv": "10", "total_base_igv": 100, "porcentaje_igv": 18, "total_igv": 18, "total_impuestos": 18, "total_valor_item": 100, "total_item": 118 }],
    "totales": { "total_operaciones_gravadas": 100, "total_igv": 18, "total_impuestos": 18, "total_valor": 100, "subtotal_venta": 118, "total_venta": 118 }
  }'
Responseapplication/json
{
  "success": true,
  "data": { "number": "FC01-3", "external_id": "uuid", "state_type_description": "Aceptado" },
  "links": { "pdf": "https://tu-empresa.nubo.devex.pe/downloads/document/pdf/uuid" }
}
Documents

Nota de débito

Emite una nota de debito usando codigo_tipo_documento = 08. Sirve para aumentar valor, intereses o penalidades.

Notas
  • No es una anulacion. El backend exige codigo_tipo_nota y motivo_o_sustento_de_nota.
POST https://tu-empresa.nubo.devex.pe/api/integration/documents

Authorizations

Authorization string header required

Enviar como Bearer API_TOKEN. El token se configura por usuario en Integracion API > Configuracion o en la ventana de Usuarios.

X-Api-Token string header optional

Alternativa para emision externa: puedes enviar el mismo token en este header si no deseas usar Bearer.

Origin string header optional

Si se envia, debe coincidir con un dominio permitido. Si no se envia, la validacion usa la IP publica del cliente.

Accept string header required

Usar application/json.

Content-Type string header required

Usar application/json para las APIs con body.

Body application/json

documento_afectado object required

Documento original que sera modificado por la nota.

documento_afectado.serie_documento string optional

Serie del comprobante afectado. Requerido si no envias documento_afectado.external_id.

documento_afectado.numero_documento string|number optional

Numero correlativo del comprobante afectado. Requerido si no envias documento_afectado.external_id.

documento_afectado.codigo_tipo_documento string optional

Tipo del comprobante afectado: 01 factura o 03 boleta. Requerido si no envias documento_afectado.external_id.

documento_afectado.external_id string optional

External ID del comprobante afectado. Si lo envias, el backend ubica el documento original y no necesitas serie, numero y tipo.

codigo_tipo_nota string required

Codigo SUNAT del motivo. Credito: 01 anulacion, 02 anulacion por error en RUC, 03 correccion descripcion, 04 descuento global, 05 descuento por item, 06 devolucion total, 07 devolucion por item, 08 bonificacion, 09 disminucion en valor, 10 otros. Debito: 01 intereses por mora, 02 aumento en valor, 03 penalidades/otros.

motivo_o_sustento_de_nota string required

Sustento visible del ajuste. Ejemplo: anulacion de operacion, descuento global, intereses por mora.

serie_documento string required

Serie habilitada para el establecimiento del usuario emisor. Ejemplos: F001, B001, FC01, FD01.

numero_documento string|number optional

Puede omitirse para factura y boleta. El backend asigna el correlativo automatico de la serie cuando llega vacio o como #.

fecha_de_emision date required

Fecha del comprobante en formato YYYY-MM-DD.

hora_de_emision time required

Hora del comprobante en formato HH:mm:ss.

fecha_de_vencimiento date optional

Fecha de vencimiento. Aplica sobre todo en credito; si no aplica puede igualarse a la fecha de emision.

codigo_tipo_documento enum<string> required

01 factura, 03 boleta, 07 nota de credito, 08 nota de debito.

codigo_tipo_operacion string optional

Opcional para notas. En facturas y boletas representa el tipo de operacion SUNAT.

codigo_tipo_moneda string required

Moneda ISO del comprobante. Ejemplos: PEN, USD.

factor_tipo_de_cambio decimal optional

Tipo de cambio cuando la moneda no es soles. Para PEN puede enviarse 1.

numero_orden_de_compra string optional

Orden de compra o referencia comercial del cliente.

datos_del_cliente_o_receptor object required

Objeto con los datos tributarios y de contacto del cliente receptor.

datos_del_cliente_o_receptor.codigo_tipo_documento_identidad string required

6 RUC, 1 DNI, 0 sin documento u otros codigos SUNAT validos.

datos_del_cliente_o_receptor.numero_documento string required

Numero del documento de identidad. Para factura debe ser RUC valido.

datos_del_cliente_o_receptor.apellidos_y_nombres_o_razon_social string required

Nombre completo o razon social del receptor.

datos_del_cliente_o_receptor.codigo_pais string optional

Codigo pais ISO. Para Peru usar PE.

datos_del_cliente_o_receptor.ubigeo string optional

Ubigeo del domicilio fiscal o comercial.

datos_del_cliente_o_receptor.direccion string optional

Direccion del cliente.

datos_del_cliente_o_receptor.correo_electronico string optional

Correo para envio del comprobante si la accion de email esta activa.

datos_del_cliente_o_receptor.telefono string optional

Telefono de contacto del receptor.

items array<object> required

Arreglo con una o mas lineas del comprobante. Cada objeto representa un producto o servicio.

items[].codigo_interno string optional

Codigo interno del producto o servicio en el sistema externo.

items[].codigo_producto_sunat string optional

Codigo de producto SUNAT cuando aplique.

items[].descripcion string required

Descripcion que se imprimira en el comprobante.

items[].unidad_de_medida string required

Unidad SUNAT. Para servicios o unidades comunes suele ser NIU.

items[].cantidad decimal required

Cantidad vendida.

items[].valor_unitario decimal required

Valor unitario sin IGV.

items[].codigo_tipo_precio string required

Codigo de tipo de precio. Normalmente 01 para precio unitario con IGV.

items[].precio_unitario decimal required

Precio unitario con impuestos incluidos.

items[].codigo_tipo_afectacion_igv string required

Afectacion IGV. Ejemplo 10 para gravado operacion onerosa.

items[].total_base_igv decimal required

Base imponible del IGV de la linea.

items[].porcentaje_igv decimal required

Porcentaje IGV aplicado. Normalmente 18.

items[].total_igv decimal required

Monto de IGV de la linea.

items[].total_impuestos decimal required

Suma de impuestos de la linea.

items[].total_valor_item decimal required

Valor total de la linea sin impuestos.

items[].total_item decimal required

Importe total de la linea con impuestos.

items[].modelo string optional

Modelo comercial del producto si se desea imprimir en el PDF.

items[].lote string optional

Lote del producto cuando aplique.

items[].series array<string> optional

Series individuales del producto cuando aplique.

totales object required

Objeto con los importes globales del comprobante.

totales.total_operaciones_gravadas decimal optional

Suma de operaciones gravadas sin IGV.

totales.total_operaciones_exoneradas decimal optional

Suma de operaciones exoneradas.

totales.total_operaciones_inafectas decimal optional

Suma de operaciones inafectas.

totales.total_igv decimal required

IGV total del comprobante.

totales.total_impuestos decimal required

Suma de impuestos globales.

totales.total_valor decimal required

Valor de venta sin impuestos.

totales.subtotal_venta decimal required

Subtotal con impuestos antes de redondeos o descuentos globales.

totales.total_venta decimal required

Total final a pagar.

pagos array<object> optional

Pagos aplicados al momento de emitir.

pagos[].codigo_metodo_pago string optional

Metodo de pago configurado. Ejemplo: 01 efectivo.

pagos[].codigo_destino_pago string optional

Destino del pago configurado cuando el metodo lo requiera.

pagos[].monto decimal optional

Monto pagado.

acciones object optional

Objeto para controlar salidas posteriores a la emision.

acciones.enviar_xml_firmado boolean optional

Genera y firma XML cuando llega en true.

acciones.enviar_email boolean optional

Envia email al cliente si existe correo disponible.

acciones.formato_pdf string optional

Formato del PDF. Ejemplo: a4, ticket.

Nota de débitocURL
curl --request POST \
  --url https://tu-empresa.nubo.devex.pe/api/integration/documents \
  --header 'Authorization: Bearer API_TOKEN' \
  --data '{
    "serie_documento": "FD01",
    "fecha_de_emision": "2026-06-03",
    "codigo_tipo_documento": "08",
    "codigo_tipo_moneda": "PEN",
    "codigo_tipo_nota": "01",
    "motivo_o_sustento_de_nota": "Intereses por mora",
    "documento_afectado": { "external_id": "external-id-afectado" },
    "datos_del_cliente_o_receptor": { "codigo_tipo_documento_identidad": "6", "numero_documento": "20123456789", "apellidos_y_nombres_o_razon_social": "CLIENTE DEMO S.A.C." },
    "items": [{ "descripcion": "Interes por mora", "unidad_de_medida": "NIU", "cantidad": 1, "valor_unitario": 20, "codigo_tipo_precio": "01", "precio_unitario": 23.6, "codigo_tipo_afectacion_igv": "10", "total_base_igv": 20, "porcentaje_igv": 18, "total_igv": 3.6, "total_impuestos": 3.6, "total_valor_item": 20, "total_item": 23.6 }],
    "totales": { "total_operaciones_gravadas": 20, "total_igv": 3.6, "total_impuestos": 3.6, "total_valor": 20, "subtotal_venta": 23.6, "total_venta": 23.6 }
  }'
Responseapplication/json
{
  "success": true,
  "data": { "number": "FD01-2", "external_id": "uuid", "state_type_description": "Aceptado" },
  "links": { "pdf": "https://tu-empresa.nubo.devex.pe/downloads/document/pdf/uuid" }
}
Documents

Anular factura o nota

Genera una comunicacion de baja para documentos grupo 01 (facturas y notas asociadas a factura).

Notas
  • El backend valida que cada external_id exista y que la fecha coincida con fecha_de_emision_de_documentos.
  • Para consultar el resultado SUNAT usa /api/voided/status enviando el ticket.
POST https://tu-empresa.nubo.devex.pe/api/voided
POST https://tu-empresa.nubo.devex.pe/api/voided/status

Authorizations

Authorization string header required

Enviar como Bearer API_TOKEN. Esta ruta usa el guard auth:api del usuario tenant.

Accept string header required

Usar application/json.

Content-Type string header required

Usar application/json para enviar el body.

Body application/json

fecha_de_emision_de_documentos date required

Fecha de emision de los documentos a anular. El backend busca los documentos por esta fecha y por external_id.

documentos array<object> required

Arreglo de documentos grupo 01: facturas y notas asociadas a factura.

documentos[].external_id string required

External ID del comprobante emitido. Debe existir y tener la misma fecha indicada.

documentos[].motivo_anulacion string required

Descripcion del motivo de anulacion.

Estado.ticket string optional

Ticket SUNAT devuelto por el primer POST. Envialo a /api/voided/status para consultar el estado.

Anular factura o notacURL
curl --request POST \
  --url https://tu-empresa.nubo.devex.pe/api/voided \
  --header 'Authorization: Bearer API_TOKEN' \
  --data '{
    "fecha_de_emision_de_documentos": "2026-06-03",
    "documentos": [{ "external_id": "external-id", "motivo_anulacion": "Error en la emision" }]
  }'

curl --request POST \
  --url https://tu-empresa.nubo.devex.pe/api/voided/status \
  --header 'Authorization: Bearer API_TOKEN' \
  --data '{ "ticket": "SUNAT_TICKET" }'
Responseapplication/json
{
  "success": true,
  "data": { "external_id": "uuid-baja", "ticket": "SUNAT_TICKET" }
}
Documents

Anular boleta

Genera un resumen de anulacion para documentos grupo 02 (boletas y notas asociadas a boleta).

Notas
  • Usa codigo_tipo_proceso = 3.
  • Para consultar el resultado SUNAT usa /api/summaries/status enviando el ticket.
POST https://tu-empresa.nubo.devex.pe/api/summaries
POST https://tu-empresa.nubo.devex.pe/api/summaries/status

Authorizations

Authorization string header required

Enviar como Bearer API_TOKEN. Esta ruta usa el guard auth:api del usuario tenant.

Accept string header required

Usar application/json.

Content-Type string header required

Usar application/json para enviar el body.

Body application/json

fecha_de_emision_de_documentos date required

Fecha de emision de las boletas o notas asociadas a boleta que se anularan.

codigo_tipo_proceso string required

Para anulacion por resumen debe ser 3.

documentos array<object> required

Arreglo de documentos grupo 02: boletas y notas asociadas a boleta.

documentos[].external_id string required

External ID del comprobante. Debe existir con la fecha indicada y pertenecer al grupo boleta.

documentos[].motivo_anulacion string required

Descripcion del motivo de anulacion.

Estado.ticket string optional

Ticket SUNAT devuelto por el primer POST. Envialo a /api/summaries/status para consultar el estado.

Anular boletacURL
curl --request POST \
  --url https://tu-empresa.nubo.devex.pe/api/summaries \
  --header 'Authorization: Bearer API_TOKEN' \
  --data '{
    "fecha_de_emision_de_documentos": "2026-06-03",
    "codigo_tipo_proceso": "3",
    "documentos": [{ "external_id": "external-id-boleta", "motivo_anulacion": "Error en la emision" }]
  }'

curl --request POST \
  --url https://tu-empresa.nubo.devex.pe/api/summaries/status \
  --header 'Authorization: Bearer API_TOKEN' \
  --data '{ "ticket": "SUNAT_TICKET" }'
Responseapplication/json
{
  "success": true,
  "data": { "external_id": "uuid-resumen", "ticket": "SUNAT_TICKET" }
}
Documents

Listar comprobantes

Consulta comprobantes emitidos por el usuario autenticado. Sin rango retorna los ultimos 50.

GET https://tu-empresa.nubo.devex.pe/api/documents/lists
GET https://tu-empresa.nubo.devex.pe/api/documents/lists/{startDate}/{endDate}

Authorizations

Authorization string header required

Enviar como Bearer API_TOKEN. Esta ruta usa el guard auth:api del usuario tenant.

Accept string header required

Usar application/json.

Parametros y response application/json

startDate date path optional

Fecha inicial para la ruta con rango. Formato YYYY-MM-DD.

endDate date path optional

Fecha final para la ruta con rango. Formato YYYY-MM-DD.

Sin rango route path optional

Si se llama /api/documents/lists, retorna los ultimos 50 comprobantes del usuario.

Response[].id number optional

ID interno del comprobante.

Response[].external_id string optional

Identificador publico para descargar o imprimir el comprobante.

Response[].number string optional

Serie y correlativo del comprobante.

Response[].document_type_id string optional

01, 03, 07, 08, entre otros.

Response[].customer_name string optional

Nombre o razon social del cliente.

Response[].date_of_issue date optional

Fecha de emision del comprobante.

Response[].total decimal optional

Total del comprobante.

Response[].download_pdf url optional

URL publica para ver el PDF.

Response[].download_xml url optional

URL publica del XML.

Response[].download_cdr url optional

URL publica del CDR cuando exista.

Listar comprobantescURL
curl --request GET \
  --url https://tu-empresa.nubo.devex.pe/api/documents/lists \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer API_TOKEN'

curl --request GET \
  --url https://tu-empresa.nubo.devex.pe/api/documents/lists/{startDate}/{endDate} \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer API_TOKEN'
Responseapplication/json
{
  "data": [{
    "id": 123,
    "external_id": "uuid",
    "number": "F001-8",
    "document_type_id": "01",
    "date_of_issue": "2026-06-03",
    "customer_name": "CLIENTE DEMO S.A.C.",
    "total": "118.00",
    "state_type_description": "Aceptado",
    "download_pdf": "https://tu-empresa.nubo.devex.pe/downloads/document/pdf/uuid"
  }]
}