Skip to main content

Overview

The Reimbursements types are used when an invoice includes reimbursable expenses - costs that were paid on behalf of a client or third party and are being billed back.

Reimbursements

Container for all reimbursement details.
export type Reimbursements = {
  reembolsoDetalle: ReimbursementDetail[];
};
reembolsoDetalle
ReimbursementDetail[]
required
Array of reimbursement detail items

ReimbursementDetail

Detailed information about a reimbursable expense.
export type ReimbursementDetail = {
  tipoIdentificacionProveedorReembolso: string;
  identificacionProveedorReembolso: string;
  codPaisPagoProveedorReembolso: string;
  tipoProveedorReembolso: string;
  codDocReembolso: string;
  estabDocReembolso: string;
  ptoEmiDocReembolso: string;
  secuencialDocReembolso: string;
  fechaEmisionDocReembolso: string;
  numeroautorizacionDocReemb: string;
  detalleImpuestos: TaxDetails;
  compensacionesReembolso: ReimbursementCompensations;
};

Fields

tipoIdentificacionProveedorReembolso
string
required
Provider identification type:
  • "04" - RUC
  • "05" - Cédula (ID card)
  • "06" - Pasaporte (Passport)
  • "07" - Consumidor final (Final consumer)
  • "08" - Identificación del exterior (Foreign ID)
identificacionProveedorReembolso
string
required
Provider’s identification number (RUC, ID, passport, etc.)
codPaisPagoProveedorReembolso
string
required
Country code where payment was made (3 digits, e.g., "593" for Ecuador)
tipoProveedorReembolso
string
required
Provider type code:
  • "01" - Natural person
  • "02" - Legal entity
codDocReembolso
string
required
Reimbursement document type code (e.g., "01" for invoice)
estabDocReembolso
string
required
Establishment code from the reimbursement document (3 digits)
ptoEmiDocReembolso
string
required
Emission point code from the reimbursement document (3 digits)
secuencialDocReembolso
string
required
Sequential number from the reimbursement document (10 digits)
fechaEmisionDocReembolso
string
required
Emission date of the reimbursement document in format DD/MM/YYYY
numeroautorizacionDocReemb
string
required
Authorization number of the reimbursement document (10 digits)
detalleImpuestos
TaxDetails
required
Tax details for the reimbursement. See TaxDetails
compensacionesReembolso
ReimbursementCompensations
required
Compensations applied to the reimbursement. See ReimbursementCompensations

TaxDetail

Tax information for a reimbursable expense.
export type TaxDetail = {
  codigo: string;
  codigoPorcentaje: string;
  tarifa: string;
  baseImponibleReembolso: string;
  impuestoReembolso: string;
};
codigo
string
required
Tax code:
  • "2" - IVA (VAT)
  • "3" - ICE (Special consumption tax)
  • "5" - IRBPNR (Tax on non-renewable natural resources)
codigoPorcentaje
string
required
Tax rate code:
  • "0" - 0% IVA
  • "2" - 12% IVA
  • "3" - 14% IVA
  • "6" - No Objeto de Impuesto
  • "7" - Exento de IVA
  • "8" - IVA diferenciado
tarifa
string
required
Tax rate percentage
baseImponibleReembolso
string
required
Taxable base amount for the reimbursement
impuestoReembolso
string
required
Tax amount for the reimbursement

TaxDetails

Container for reimbursement tax details.
export type TaxDetails = {
  detalleImpuesto: TaxDetail[];
};
detalleImpuesto
TaxDetail[]
required
Array of tax detail items for the reimbursement

ReimbursementCompensation

Compensation/offset applied to a reimbursement.
export type ReimbursementCompensation = {
  codigo: string;
  tarifa: string;
  valor: string;
};
codigo
string
required
Compensation code
tarifa
string
required
Compensation rate
valor
string
required
Compensation amount

ReimbursementCompensations

Container for reimbursement compensations.
export type ReimbursementCompensations = {
  compensacionesReembolso: ReimbursementCompensation[];
};
compensacionesReembolso
ReimbursementCompensation[]
required
Array of compensation items

Usage Example

import { Reimbursements } from 'open-factura';

const reimbursements: Reimbursements = {
  reembolsoDetalle: [
    {
      tipoIdentificacionProveedorReembolso: "04", // RUC
      identificacionProveedorReembolso: "1234567890001",
      codPaisPagoProveedorReembolso: "593", // Ecuador
      tipoProveedorReembolso: "02", // Legal entity
      codDocReembolso: "01", // Invoice
      estabDocReembolso: "001",
      ptoEmiDocReembolso: "001",
      secuencialDocReembolso: "0000000123",
      fechaEmisionDocReembolso: "01/03/2026",
      numeroautorizacionDocReemb: "1234567890",
      detalleImpuestos: {
        detalleImpuesto: [
          {
            codigo: "2", // IVA
            codigoPorcentaje: "2", // 12%
            tarifa: "12",
            baseImponibleReembolso: "100.00",
            impuestoReembolso: "12.00"
          }
        ]
      },
      compensacionesReembolso: {
        compensacionesReembolso: [
          {
            codigo: "1",
            tarifa: "2",
            valor: "2.00"
          }
        ]
      }
    }
  ]
};

Notes

  • Reimbursements are used when you pay for something on behalf of your client and need to bill them back
  • Each reimbursement must reference the original document (invoice/receipt) from the provider
  • The reimbursement document number format is: estab-ptoEmi-secuencial (e.g., 001-001-0000000123)
  • Tax details should match the taxes on the original provider document
  • Total reimbursement amounts should be included in the invoice’s totalComprobantesReembolso, totalBaseImponibleReembolso, and totalImpuestoReembolso fields

Build docs developers (and LLMs) love