Skip to content

Comprobantes

Los comprobantes electrónicos se envían al SRI para su autorización. El ambiente de pruebas o producción del SRI depende de la configuración de UpConta.

Consideraciones:

  • Los comprobantes electrónicos toman el ambiente (pruebas/producción) configurado en UpConta.
  • Al emitirse, se envía un correo al cliente y a la empresa con el PDF y XML.

Estados del comprobante

EstadoDescripción
issuedComprobante autorizado por el SRI
sentEnviado al SRI, pendiente de autorización
failedRechazado por el SRI, se puede editar
canceledAnulado en el sistema
draftEn borrador
offlineModo offline por indisponibilidad del SRI

Modo offline

  • Si el SRI está fuera de servicio, el comprobante queda en modo offline:
    • recepcion: Servicio de recepción del SRI no disponible
    • autorizacion: Servicio de autorización del SRI no disponible
  • UpConta reintenta automáticamente la emisión después de un período.

Opciones de comprobantes

GET/v3/administrative/invoices/get-options
TESThttps://api-test.upconta.com/v3/administrative/invoices/get-options
PRODhttps://api.upconta.com/v3/administrative/invoices/get-options

TIP

Los valores de impuestos, formas de pago, tipos de comprobante y porcentajes de IVA se obtienen del endpoint /get-options. Consulta siempre este endpoint para obtener los valores actualizados según la normativa del SRI vigente.

json
{
  "Impuestos": [
    { "id": "2", "description": "IVA" },
    { "id": "3", "description": "ICE" },
    { "id": "5", "description": "IRBPNR" }
  ],
  "FormasDePago": [
    { "id": "01", "description": "SIN UTILIZACION DEL SISTEMA FINANCIERO" },
    { "id": "15", "description": "COMPENSACIÓN DE DEUDAS" },
    { "id": "16", "description": "TARJETA DE DÉBITO" },
    { "id": "17", "description": "DINERO ELECTRÓNICO" },
    { "id": "18", "description": "TARJETA PREPAGO" },
    { "id": "19", "description": "TARJETA DE CRÉDITO" },
    { "id": "20", "description": "OTROS CON UTILIZACION DEL SISTEMA FINANCIERO" },
    { "id": "21", "description": "ENDOSO DE TÍTULOS 21" },
    { "id": "efectivo", "description": "EFECTIVO" },
    { "id": "transferencia", "description": "TRANSFERENCIA" },
    { "id": "deuna", "description": "DEUNA" },
    { "id": "cheque", "description": "CHEQUE" }
  ],
  "TiposDeComprobante": [
    { "id": "01", "description": "Factura" },
    { "id": "02", "description": "Nota de venta" },
    { "id": "03", "description": "Liquidación de compra" },
    { "id": "04", "description": "Nota de Crédito" },
    { "id": "05", "description": "Nota de Débito" },
    { "id": "06", "description": "Guía de Remisión" },
    { "id": "07", "description": "Comprobante de Retención" },
    { "id": "11", "description": "Ticket de Avión" }
  ],
  "PorcentajesDeIVA": [
    { "id": "0", "description": "0%", "value": 0 },
    { "id": "2", "description": "12%", "value": 0.12 },
    { "id": "4", "description": "15%", "value": 0.15 },
    { "id": "5", "description": "5%", "value": 0.05 },
    { "id": "8", "description": "8%", "value": 0.08 },
    { "id": "10", "description": "13%", "value": 0.13 },
    { "id": "6", "description": "No objeto de impuesto", "value": 0 },
    { "id": "7", "description": "Exento de IVA", "value": 0 }
  ],
  "TiposDeIdentificacion": [
    { "id": "04", "description": "RUC" },
    { "id": "05", "description": "Cédula" },
    { "id": "06", "description": "Pasaporte" },
    { "id": "08", "description": "Identificación del exterior" },
    { "id": "09", "description": "Placa" }
  ]
}

Facturación electrónica

Recursos

Información tributaria

ts
interface InfoTributaria {
  estab: string;
  ptoEmi: string;
}

Tabla de pagos

ts
interface Pago {
  formaPago: string;
  total: number;
}
  • formaPago es el id de FormasDePago.
  • La suma de los totales debe igualar el total de la factura.

Tabla de detalles

ts
interface Detalle {
  product: string;
  stock?: string;
  codigoPrincipal: string;
  descripcion: string;
  cantidad: number;
  precioUnitario: number;
  descuentoInicial?: number;
  descuento?: number;
  precioTotalSinImpuesto: number;
  impuestos: Impuesto[];
}

Obtener facturas

GET/v3/administrative/invoices
TESThttps://api-test.upconta.com/v3/administrative/invoices
PRODhttps://api.upconta.com/v3/administrative/invoices

Obtener factura

GET/v3/administrative/invoices/:id
TESThttps://api-test.upconta.com/v3/administrative/invoices/:id
PRODhttps://api.upconta.com/v3/administrative/invoices/:id

Para obtener todos los campos:

GET/v3/administrative/invoices/:id?$getAllFields=true
TESThttps://api-test.upconta.com/v3/administrative/invoices/:id?$getAllFields=true
PRODhttps://api.upconta.com/v3/administrative/invoices/:id?$getAllFields=true

Crear factura

POST/v3/administrative/invoices
TESThttps://api-test.upconta.com/v3/administrative/invoices
PRODhttps://api.upconta.com/v3/administrative/invoices
json
{
  "client": "ID_DEL_CLIENTE",
  "infoTributaria": {
    "estab": "001",
    "ptoEmi": "002"
  },
  "detalles": [
    {
      "product": "ID_DEL_PRODUCTO",
      "cantidad": 2,
      "precioUnitario": 10,
      "descuentoInicial": 2
    }
  ]
}

Guardar como borrador

POST/v3/administrative/invoices?guardarComoBorrador=true
TESThttps://api-test.upconta.com/v3/administrative/invoices?guardarComoBorrador=true
PRODhttps://api.upconta.com/v3/administrative/invoices?guardarComoBorrador=true

Enviar factura por correo

GET/v3/administrative/invoices/:id/send-email
TESThttps://api-test.upconta.com/v3/administrative/invoices/:id/send-email
PRODhttps://api.upconta.com/v3/administrative/invoices/:id/send-email
json
{
  "message": "success"
}

Obtener factura en PDF

GET/v3/administrative/invoices/:id/pdf
TESThttps://api-test.upconta.com/v3/administrative/invoices/:id/pdf
PRODhttps://api.upconta.com/v3/administrative/invoices/:id/pdf

Eliminar factura

Solo se pueden eliminar comprobantes fallidos.

DELETE/v3/administrative/invoices/:id
TESThttps://api-test.upconta.com/v3/administrative/invoices/:id
PRODhttps://api.upconta.com/v3/administrative/invoices/:id

Anular factura

Solo se pueden anular facturas emitidas.

DELETE/v3/administrative/invoices/:id/cancel
TESThttps://api-test.upconta.com/v3/administrative/invoices/:id/cancel
PRODhttps://api.upconta.com/v3/administrative/invoices/:id/cancel
json
{
  "message": "anulado"
}