Skip to main content
POST
/
documents
/
{document_id}
/
states
curl --request POST \
  --url https://api.tupana.ai/v1/documents/{document_id}/states \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "event_code": "ERM"
}
'
{
  "success": true,
  "event_registered": true,
  "message": "Documento marcado como pagado. Se generó el asiento contable de cierre de cuentas por cobrar.",
  "document": {
    "id": 12345,
    "folio": "42",
    "date_issued": "2025-01-15",
    "document_status": {
      "paid_status": "PAID"
    }
  }
}

Qué hace

  • Crea un nuevo estado asociado al documento
  • Agrega el evento al historial del documento
  • No reemplaza ni elimina estados anteriores
  • Permite registrar eventos manuales o automáticos

Ejemplos de uso

  • Marcar un documento como pagado
  • Registrar un acuse de recibo
  • Registrar un rechazo
  • Asociar un evento proveniente del SII
  • Registrar mérito ejecutivo o eventos de cobranza

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)

Path Parameters

document_id
integer
required

ID único del documento (integer)

Body

application/json
event_code
enum<string>
required

Código del evento a registrar:

  • ERM: Acuse de Recibo de Mercaderías y Servicios
  • ACD: Acepta Contenido del Documento
  • RCD: Reclama Contenido del Documento
  • RFT: Reclamo por Falta Total
  • RFP: Reclamo por Falta Parcial
  • PAID: Marcar factura emitida como pagada (genera asiento cierre CxC; solo emisor; tipos 33, 34, 39, 41)
  • UNPAID: Marcar factura emitida como no pagada (revierte asiento cierre CxC; solo emisor)
Available options:
ERM,
ACD,
RCD,
RFT,
RFP,
PAID,
UNPAID
Example:

"ERM"

rejection_reason
string

Razón del rechazo (opcional, solo para eventos de rechazo: RCD, RFT, RFP)

Example:

"Error en el monto facturado"

Response

Estado registrado exitosamente

success
boolean

Indica si la operación fue exitosa

Example:

true

event_registered
boolean

Indica si el evento fue registrado exitosamente

Example:

true

message
string

Mensaje descriptivo del resultado

Example:

"Acuse de Recibo registrado. Este acuse rebajará el IVA del próximo mes."

event_data
object

Datos adicionales del evento registrado (proporcionados por el SII)

document
object
email_preview_data
object

Datos para preview de email (solo para aprobaciones, rechazos o acuses de recibo)