Skip to content

Invoices ​

Facturas electrónicas (/invoices).

Es el documento con más operaciones: seis acciones, borradores y nominación.

Extends ​

Constructors ​

Constructor ​

ts
new Invoices(transport, config): Invoices;

Parameters ​

ParameterType
transportTransport
configIssuerConfig

Returns ​

Invoices

Inherited from ​

DocumentResource.constructor

Properties ​

documentType ​

ts
readonly documentType: "electronic_invoice" = DocumentType.INVOICE;

El tipo de documento que emite este recurso.

Overrides ​

DocumentResource.documentType

Methods ​

get() ​

ts
get(id): Promise<Document>;

Un recurso por su id.

Parameters ​

ParameterType
idnumber

Returns ​

Promise<Document>

Inherited from ​

DocumentResource.get


delete() ​

ts
delete(id): Promise<void>;

Borra el recurso.

Parameters ​

ParameterType
idnumber

Returns ​

Promise<void>

Inherited from ​

DocumentResource.delete


cancel() ​

ts
cancel(id, reason): Promise<void>;

Anula el documento ante la DNIT.

Solo se puede anular un documento aprobado, y el motivo es obligatorio. La anulación es asíncrona: el documento pasa a cancellation_requested y termina en cancelled.

No devuelve el documento porque la API no lo manda —responde el id de la anulación—; para ver cómo quedó hay que releerlo con Resource.get o esperarlo con waitUntilFinal.

Parameters ​

ParameterType
idnumber
reasonstring

Returns ​

Promise<void>

Inherited from ​

DocumentResource.cancel


resendEmail() ​

ts
resendEmail(id): Promise<void>;

Reenvía el documento por correo al receptor.

Parameters ​

ParameterType
idnumber

Returns ​

Promise<void>

Inherited from ​

DocumentResource.resendEmail


resendToSet() ​

ts
resendToSet(id): Promise<void>;

Reenvía a la DNIT un documento que quedó en error.

Como cancel, no devuelve el documento: hay que releerlo.

Parameters ​

ParameterType
idnumber

Returns ​

Promise<void>

Inherited from ​

DocumentResource.resendToSet


kudeUrl() ​

ts
kudeUrl(id): Promise<string>;

URL temporal del KuDE en PDF.

Está disponible recién cuando el documento se generó. Antes, la API responde 404.

Parameters ​

ParameterType
idnumber

Returns ​

Promise<string>

Inherited from ​

DocumentResource.kudeUrl


waitUntilFinal() ​

ts
waitUntilFinal(id, options?): Promise<Document>;

Consulta el documento hasta que llegue a un estado final.

Sirve para el flujo "emito y necesito el CDC ahora". Si se puede escuchar webhooks, es mejor eso: esto consume cuota del límite de 5 solicitudes por segundo.

El plazo por omisión es holgado a propósito: un documento pasa por varios estados intermedios antes de quedar aprobado, y cada salto lo da el servidor por su cuenta, así que el recorrido completo puede llevar minutos. Agotar la espera no cancela nada: el documento sigue su curso.

Ojo con los estados intermedios que parecen finales: recoverable_errorno corta la espera, porque SmartDoc lo reintenta solo.

Parameters ​

ParameterType
idnumber
optionsWaitOptions

Returns ​

Promise<Document>

Throws ​

si se agota el tiempo.

Inherited from ​

DocumentResource.waitUntilFinal


create() ​

ts
create(options): Promise<Document>;

Emite una factura.

Los datos del emisor, el timbrado, los totales y el desglose de IVA los completa el SDK. Lo que hay que dar es a quién se le factura y qué se le factura.

El status de la factura recién creada va a ser pending o draft: la aprobación de la DNIT llega después, por webhook o consultando con DocumentResource.waitUntilFinal.

Parameters ​

ParameterType
optionsCreateInvoiceOptions

Returns ​

Promise<Document>


update() ​

ts
update(id, options): Promise<Document>;

Reemplaza una factura.

No es un parche: la API valida el cuerpo completo igual que al crear, así que hay que pasar el documento entero.

Es la forma de corregir una factura que quedó en error. Al editarla, SmartDoc la vuelve a procesar sola: no hay que reenviarla ni reemitirla.

Se puede editar en cualquier estado salvo uploaded_to_set y approved_by_set; ahí la API responde 400 con EDIT_NOT_ALLOWED y la vía es anular y reemitir.

Parameters ​

ParameterType
idnumber
optionsUpdateInvoiceOptions

Returns ​

Promise<Document>


nominate() ​

ts
nominate(
   id, 
   clientId, 
reason?): Promise<void>;

Le pone nombre a una factura innominada.

Se usa cuando se emitió sin identificar al comprador y después el cliente pide la factura a su nombre. El cliente tiene que estar cargado en SmartDoc: clientId es su id, el que devuelve sd.clients.

Como DocumentResource.cancel, solo se puede sobre una factura ya aprobada por la DNIT. Antes, la API responde ACTION_NOT_ALLOWED.

La nominación es asíncrona y la API responde su id, no el documento: hay que releerlo con Resource.get para ver cómo quedó.

Parameters ​

ParameterTypeDescription
idnumber-
clientIdnumber-
reason?stringMotivo del evento, entre 5 y 500 caracteres. Si no se pasa, SmartDoc usa uno por omisión.

Returns ​

Promise<void>


confirmDraft() ​

ts
confirmDraft(id): Promise<Document>;

Confirma un borrador y lo envía a la DNIT.

Parameters ​

ParameterType
idnumber

Returns ​

Promise<Document>


discardDraft() ​

ts
discardDraft(id): Promise<Document>;

Descarta un borrador.

Parameters ​

ParameterType
idnumber

Returns ​

Promise<Document>


list() ​

ts
list(options?): Promise<Page<Document>>;

Lista facturas, de la más reciente a la más vieja.

dateTo incluye el día que nombra: pedir hasta el 31 de julio trae las facturas del 31.

Parameters ​

ParameterType
optionsListInvoicesOptions

Returns ​

Promise<Page<Document>>

Overrides ​

DocumentResource.list