Skip to main content
POST
/
scheduled-documents
Crear documento programado
curl --request POST \
  --url https://api.tupana.ai/v1/scheduled-documents \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "sender": 123,
  "dte_type": "33",
  "receiver_tax_id": "76111111-1",
  "frequency": "monthly",
  "day_of_month": 10,
  "currency": "CLP",
  "currency_day": 10,
  "status": "active",
  "references": [
    {
      "dte_type_code": "33",
      "reference_folio": "100",
      "reference_date": "2024-01-15",
      "reference_reason": "ANULA DOCUMENTO DE LA REFERENCIA"
    }
  ],
  "details": [
    {
      "item_name": "Servicio mensual de consultoría",
      "item_description": "Asistencia contable mensual",
      "quantity": 1,
      "unit_price": 150000
    }
  ]
}
'
{
  "id": 987,
  "sender": {
    "id": 123,
    "name": "Empresa Ejemplo SpA",
    "rut": "76543210-1"
  },
  "receiver": {
    "id": 456,
    "name": "Cliente ABC Ltda",
    "rut": "12345678-9"
  },
  "dte_type": {
    "id": 1,
    "code": "33",
    "description": "Factura Electrónica"
  },
  "frequency": "monthly",
  "frequency_display": "Mensual",
  "day_of_month": 10,
  "day_of_week": null,
  "next_execution": "2024-03-10T10:00:00Z",
  "status": "active",
  "status_display": "Activo",
  "amount": 150000,
  "currency": "CLP",
  "currency_day": 10,
  "completed_occurrences": 0,
  "max_occurrences": null,
  "references": [
    {
      "id": 1,
      "dte_type_code": "33",
      "reference_folio": "100",
      "reference_date": "2024-01-15",
      "reference_reason": "ANULA DOCUMENTO DE LA REFERENCIA"
    }
  ],
  "details": [
    {
      "id": 1,
      "item_name": "Servicio mensual de consultoría",
      "item_description": "Asistencia contable mensual",
      "quantity": 1,
      "unit_price": 150000,
      "item_total": 150000
    }
  ],
  "created_at": "2024-02-05T12:15:00Z",
  "updated_at": "2024-02-05T12:15:00Z"
}

Qué hace

  • Crea un nuevo documento programado que se ejecutará automáticamente según la frecuencia especificada
  • Permite definir la frecuencia de ejecución (diaria, semanal, mensual, trimestral)
  • Configura automáticamente la próxima ejecución según la frecuencia
  • Busca o crea automáticamente el receptor si no existe
  • Establece el estado inicial del documento programado (activo o inactivo)

Ejemplos de uso

  • Crear facturas recurrentes mensuales a clientes específicos
  • Programar servicios de suscripción que se facturen automáticamente
  • Automatizar facturación de servicios periódicos (consulta, mantenimiento, etc.)
  • Configurar facturas trimestrales para reportes o servicios continuos
  • Establecer documentos programados que se ejecuten diariamente

Endpoints relacionados

Authorizations

Authorization
string
header
required

API Key para autenticación. Debe proporcionarse en el header Authorization con el formato: 'Api-Key YOUR-API-KEY' (incluye el prefijo 'Api-Key ' seguido de tu API key)

Body

application/json

Datos del documento programado a crear

sender
integer
required

ID de la entidad maestra emisora (obligatorio)

Example:

123

dte_type
string
required

Código del tipo de DTE (ej: '33' para Factura Electrónica)

Example:

"33"

receiver_tax_id
string
required

RUT del receptor (formato: 12345678-9). El sistema buscará un cliente existente con este RUT. Si no existe, creará uno nuevo automáticamente. Campo requerido.

Example:

"12345678-9"

frequency
enum<string>
required

Frecuencia de ejecución del documento programado. Valores: 'daily' (diario), 'weekly' (semanal), 'monthly' (mensual), 'quarterly' (trimestral), 'semiannual' (semestral), 'yearly' (anual).

Available options:
daily,
weekly,
monthly,
quarterly,
semiannual,
yearly
Example:

"monthly"

details
object[]
required

Detalles/productos del documento

Minimum array length: 1
day_of_month
integer

Día del mes en que se ejecutará el documento (1-31). Requerido para frecuencias: monthly, quarterly, semiannual, yearly. Si el día no existe en un mes (ej: 31 en febrero), se usará el último día del mes.

Required range: 1 <= x <= 31
Example:

15

day_of_week
integer

Día de la semana en que se ejecutará el documento (1=Lunes, 2=Martes, 3=Miércoles, 4=Jueves, 5=Viernes, 6=Sábado, 7=Domingo). Requerido para frecuencia semanal (weekly).

Required range: 1 <= x <= 7
Example:

1

start_date
string<date>

Fecha de inicio de la programación (YYYY-MM-DD). Define desde cuándo comenzará a ejecutarse el documento programado. Si no se proporciona, se usa la fecha actual. La primera ejecución será calculada a partir de esta fecha según la frecuencia configurada.

Example:

"2024-02-01"

emission_day_adjustment
enum<string>
default:none

Ajuste de fecha de emisión a días hábiles. Si la fecha calculada cae en fin de semana o feriado, se ajusta según esta opción: 'none' (sin ajuste, emite en la fecha calculada aunque sea fin de semana), 'next' (ajusta al próximo día hábil), 'previous' (ajusta al anterior día hábil). Por defecto: 'none'.

Available options:
none,
next,
previous
Example:

"none"

end_type
enum<string>
default:never

Tipo de finalización de la programación: 'never' (nunca finaliza, se ejecuta indefinidamente), 'on_date' (finaliza en una fecha específica, requiere end_date), 'after_occurrences' (finaliza después de un número máximo de ejecuciones, requiere max_occurrences). Por defecto: 'never'.

Available options:
never,
on_date,
after_occurrences
Example:

"never"

end_date
string<date>

Fecha de finalización de la programación (YYYY-MM-DD). Solo aplica y es requerido si end_type es 'on_date'. El documento programado dejará de ejecutarse después de esta fecha.

Example:

"2024-12-31"

currency
enum<string>
default:CLP

Moneda del documento

Available options:
CLP,
UF,
USD,
EUR
Example:

"CLP"

currency_day
integer | null

Día del mes (1-31) para tomar el valor del tipo de cambio (UF o USD). Si no se indica, se usa el día de emisión.

Required range: 1 <= x <= 31
Example:

10

references
object[]

Referencias a documentos (ej. factura anulada por nota de crédito). Máximo 3 referencias.

Maximum array length: 3
status
enum<string>
default:active

Estado inicial del documento programado

Available options:
active,
inactive
Example:

"active"

max_occurrences
integer

Número máximo de ejecuciones (opcional, null = infinito). Solo aplica si end_type es 'after_occurrences'.

Required range: x >= 1
Example:

12

Response

Documento programado creado exitosamente

id
integer

ID único del documento programado

Example:

789

sender
object

Información de la entidad emisora

receiver
object

Información de la entidad receptora

dte_type
object

Tipo de documento tributario

frequency
enum<string>

Frecuencia de ejecución

Available options:
daily,
weekly,
monthly,
quarterly,
semiannual,
yearly
Example:

"monthly"

frequency_display
string

Frecuencia en formato legible

Example:

"Mensual"

day_of_month
integer | null

Día del mes en que se ejecutará el documento (1-31). Requerido para frecuencias: monthly, quarterly, semiannual, yearly. Si el día no existe en un mes (ej: 31 en febrero), se usará el último día del mes.

Example:

15

day_of_week
integer | null

Día de la semana para ejecución (1=Lunes, 7=Domingo)

Example:

null

next_execution
string<date-time>

Fecha y hora de la próxima ejecución

Example:

"2024-02-15T10:00:00Z"

status
enum<string>

Estado del documento programado

Available options:
active,
inactive,
completed
Example:

"active"

status_display
string

Estado en formato legible

Example:

"Activo"

amount
number

Monto del documento

Example:

100000

currency
enum<string>

Moneda del documento

Available options:
CLP,
UF,
USD,
EUR
Example:

"CLP"

currency_day
integer | null

Día del mes (1-31) para tomar el valor del tipo de cambio. Aplica cuando la moneda es UF o USD; si no se indica, se usa el día de emisión.

Required range: 1 <= x <= 31
Example:

10

completed_occurrences
integer

Número de veces que se ha ejecutado

Example:

5

max_occurrences
integer | null

Número máximo de ejecuciones

Example:

null

start_date
string<date> | null

Fecha de inicio de la programación (YYYY-MM-DD). Define desde cuándo comenzará a ejecutarse el documento programado. Si no se proporciona, se usa la fecha actual. La primera ejecución será calculada a partir de esta fecha según la frecuencia configurada.

Example:

"2024-02-01"

emission_day_adjustment
enum<string>
default:none

Ajuste de fecha de emisión a días hábiles: 'none' (sin ajuste), 'next' (próximo día hábil), 'previous' (anterior día hábil)

Available options:
none,
next,
previous
Example:

"none"

end_type
enum<string>
default:never

Tipo de finalización de la programación: 'never' (nunca finaliza, se ejecuta indefinidamente), 'on_date' (finaliza en una fecha específica, requiere end_date), 'after_occurrences' (finaliza después de un número máximo de ejecuciones, requiere max_occurrences). Por defecto: 'never'.

Available options:
never,
on_date,
after_occurrences
Example:

"never"

end_date
string<date> | null

Fecha de finalización de la programación (YYYY-MM-DD). Solo aplica y es requerido si end_type es 'on_date'. El documento programado dejará de ejecutarse después de esta fecha.

Example:

"2024-12-31"

details
object[]

Detalles/productos del documento

references
object[]

Referencias a documentos (ej. factura anulada por nota de crédito). Máximo 3 referencias.

Maximum array length: 3
created_at
string<date-time>

Fecha de creación

Example:

"2024-01-15T10:00:00Z"

updated_at
string<date-time>

Fecha de última actualización

Example:

"2024-01-20T15:30:00Z"