Tema
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
| Parameter | Type |
|---|---|
transport | Transport |
config | IssuerConfig |
Returns
Invoices
Inherited from
Properties
documentType
ts
readonly documentType: "electronic_invoice" = DocumentType.INVOICE;El tipo de documento que emite este recurso.
Overrides
Methods
get()
ts
get(id): Promise<Document>;Un recurso por su id.
Parameters
| Parameter | Type |
|---|---|
id | number |
Returns
Promise<Document>
Inherited from
delete()
ts
delete(id): Promise<void>;Borra el recurso.
Parameters
| Parameter | Type |
|---|---|
id | number |
Returns
Promise<void>
Inherited from
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
| Parameter | Type |
|---|---|
id | number |
reason | string |
Returns
Promise<void>
Inherited from
resendEmail()
ts
resendEmail(id): Promise<void>;Reenvía el documento por correo al receptor.
Parameters
| Parameter | Type |
|---|---|
id | number |
Returns
Promise<void>
Inherited from
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
| Parameter | Type |
|---|---|
id | number |
Returns
Promise<void>
Inherited from
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
| Parameter | Type |
|---|---|
id | number |
Returns
Promise<string>
Inherited from
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
| Parameter | Type |
|---|---|
id | number |
options | WaitOptions |
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
| Parameter | Type |
|---|---|
options | CreateInvoiceOptions |
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
| Parameter | Type |
|---|---|
id | number |
options | UpdateInvoiceOptions |
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
| Parameter | Type | Description |
|---|---|---|
id | number | - |
clientId | number | - |
reason? | string | Motivo 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
| Parameter | Type |
|---|---|
id | number |
Returns
Promise<Document>
discardDraft()
ts
discardDraft(id): Promise<Document>;Descarta un borrador.
Parameters
| Parameter | Type |
|---|---|
id | number |
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
| Parameter | Type |
|---|---|
options | ListInvoicesOptions |
