Endpoints de Eventos

Los eventos permiten realizar acciones especiales sobre documentos electrónicos ya emitidos, como inutilizar números de documentos, cancelar facturas o nominar clientes.

Endpoint

URL del Endpoint de Eventos

https://api.factpy.com/facturacion-api/evento.php

Método URL Content-Type
POST https://api.factpy.com/facturacion-api/evento.php multipart/form-data

Tipos de Eventos

Inutilización (tipoEvento: 1)

Dar de baja números de documentos no utilizados o salteados

Cancelación (tipoEvento: 2)

Anular un DE dentro de 48 horas desde su aprobación

Nominación (tipoEvento: 3)

Asignar cliente a factura emitida sin datos del comprador

Parámetros del Body

El cuerpo de la solicitud debe enviarse en formato multipart/form-data con los siguientes parámetros:

dataJson string Requerido
Contiene los datos del evento en formato JSON. Debe incluir el tipoEvento y los campos correspondientes según el tipo de evento
recordID string Requerido
Identificador único del registro en el sistema. Este ID se encuentra en tu perfil de FactPy y se usa para asociar el evento con tu cuenta

Respuestas de la API

Respuesta Exitosa

JSON
{
  "status": true,
  "code": "Evento registrado correctamente",
  "fecha": "2025-01-10 13:22"
}
Campo Tipo Descripción
status boolean true si el evento se registró correctamente
code string Mensaje de confirmación
fecha string Fecha y hora del registro del evento

Respuesta de Error

JSON
{
  "status": false,
  "code": "Codigo o mensaje de error"
}
Campo Tipo Descripción
status boolean false si hubo un error
code string Mensaje descriptivo del error

Ejemplo de Solicitud cURL

bash
curl -X POST https://api.factpy.com/facturacion-api/evento/ \
  -H "Content-Type: multipart/form-data" \
  -F "dataJson={\"tipoEvento\":1,\"timbrado\":\"1622239\",\"tipoDoc\":\"1\",\"establecimiento\":\"001\",\"punto\":\"001\",\"desde\":\"0000001\",\"hasta\":\"0000001\",\"motivo\":\"Salto de numeracion\"}" \
  -F "recordID=TU_RECORD_ID"

Ejemplo en JavaScript

JavaScript
const formData = new FormData();

const eventoData = {
  tipoEvento: 1,
  timbrado: "1622239",
  tipoDoc: "1",
  establecimiento: "001",
  punto: "001",
  desde: "0000001",
  hasta: "0000001",
  motivo: "Salto de numeracion"
};

formData.append('dataJson', JSON.stringify(eventoData));
formData.append('recordID', 'TU_RECORD_ID');

fetch('https://api.factpy.com/facturacion-api/evento/', {
  method: 'POST',
  body: formData
})
.then(response => response.json())
.then(data => {
  console.log('Respuesta:', data);
  if (data.status) {
    console.log('Evento registrado:', data.fecha);
  } else {
    console.error('Error:', data.code);
  }
})
.catch(error => console.error('Error de red:', error));

Notas Importantes

recordID obligatorio

El recordID es único para cada cuenta y lo encuentras en tu perfil de FactPy

Content-Type correcto

Asegúrate de usar multipart/form-data como Content-Type

Validar respuesta

Siempre verifica el campo status en la respuesta antes de continuar

Plazos limitados

La cancelación solo es posible dentro de las 48 horas siguientes a la aprobación del documento

Tipos de Eventos