Skip to content
WebsiteGet started

Concepts

Ciclo de vida

Los estados de un comprobante desde que lo enviás hasta el veredicto de Hacienda, y los webhooks de cada paso.

This content is not available in your language yet.

Emitir un comprobante es asíncrono. POST /electronic-documents responde en cuanto Aster validó y firmó; el veredicto de Hacienda llega después, normalmente en segundos. Mientras tanto, el comprobante pasa por estos estados, visibles en el campo status.

┌──────────────► queued ─────┐
│ Hacienda no │ reenvío automático
│ disponible ▼
solicitud ──► processing ─────────────────────► sent ──► accepted
│ │ └──► rejected
│ └──────────────► error
└──► 4xx (validation_error, quota_exceeded, …): no se crea el comprobante
Estado Significado ¿Final?
processing Validado y firmado; Aster lo está enviando a Hacienda No
queued Hacienda no estaba disponible. Aster guardó el comprobante y lo reenvía solo, sin límite de intentos, en cuanto Hacienda vuelve No
sent Hacienda lo recibió y lo está procesando No
accepted Hacienda lo aceptó. Es un comprobante válido Sí
rejected Hacienda lo rechazó. El motivo está en hacienda_message Sí
error El envío falló de forma definitiva y el comprobante nunca llegó a Hacienda Sí

Si la solicitud no pasa la validación, la API responde con un error 4xx y no se crea ningún comprobante: no hay estado que seguir. Ver errores.

Un comprobante que ya tiene veredicto de Hacienda nunca cambia de estado. Si Hacienda repite su respuesta, Aster no vuelve a notificar.

  • accepted: listo. Entregale al cliente el PDF y el XML, o dejá que Aster lo haga (ver PDF y correo).
  • rejected: corregí el problema y emití un comprobante nuevo con clave y consecutivo nuevos, que haga referencia al rechazado. El consecutivo del rechazado ya está gastado. Ver reemplazar un comprobante rechazado.
  • queued: no hagás nada. No reenvíes el comprobante: Aster ya lo tiene y lo va a reenviar. Podés avisarle al cliente que el comprobante está emitido y pendiente de la respuesta de Hacienda.
  • error: el consecutivo queda libre. Revisá hacienda_message y volvé a enviar.

Cada cambio de estado dispara un evento a tus webhooks registrados (y al callback_url de la solicitud, si lo enviaste). Los eventos van firmados con HMAC-SHA256; la verificación está en la guía de webhooks.

Evento Cuándo
document.created Se registró el comprobante
document.signed Se generó y firmó el XML
document.queued Hacienda no estaba disponible; el comprobante quedó en cola para reenvío automático
document.accepted Hacienda aceptó el comprobante
document.rejected Hacienda rechazó el comprobante
document.error El envío falló de forma definitiva
document.voided El comprobante fue anulado con una nota de crédito
callback.received Llegó la respuesta de Hacienda para el comprobante

Ejemplo del cuerpo de document.accepted:

{
"document_key": "50608102600310165432100100001010000001042147201936",
"document_type": "01",
"status": "accepted",
"hacienda_status": "accepted",
"hacienda_message": "Documento aceptado"
}

Para la mayoría de las integraciones basta con escuchar document.accepted, document.rejected y document.queued.

Hacienda informa su veredicto llamando a una URL de Aster (el callback). Vos no tenés que exponer nada para eso. Pero Hacienda a veces no llama, o llama con un estado intermedio (“procesando”). Por eso Aster no depende solo del callback:

  • Si un comprobante enviado no recibe respuesta en unos minutos, Aster consulta su estado directamente en Hacienda, las 24 horas, rotando entre los pendientes.
  • Si Hacienda responde que el comprobante sigue en proceso, Aster lo vuelve a consultar más tarde.
  • Si Hacienda no está disponible al enviar, el comprobante pasa a queued y se reenvía automáticamente cuando Hacienda vuelve, también las 24 horas.

En la práctica, todo comprobante en processing, queued o sent termina en accepted o rejected sin que intervengas. El estado de Hacienda en vivo está en /haciendastatus.

Si no usás webhooks, consultá el comprobante con su clave, su consecutivo o su id:

Terminal
curl https://aster.astranexo.com/api/v1/electronic-documents/50608102600310165432100100001010000001042147201936 \
-H "Authorization: Bearer $ASTER_API_KEY"

Consultá cada 2 a 5 segundos durante el primer minuto y después con menos frecuencia. Una clave que Aster no conoce responde 404 not_found. Si querés ver el estado directamente en Hacienda, usá GET /hacienda/query/{clave}.

Hacienda puede aceptar un comprobante y aun así devolver códigos de advertencia, como -37 o -410. Son observaciones menores: el comprobante está aceptado y Aster lo marca accepted. El texto de Hacienda queda en hacienda_message por si querés registrarlo o corregir el detalle en los próximos comprobantes.