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