Introducción Última Actualización: 2025-07-28

A continuación se abordan las dos formas de conectar los tickets de su empresa con AutoFactura.
Se describe de manera detallada cada escenario para determinar cómo y cuándo debe utilizarse cada opción, así como diagramas para una mejor compresión del flujo de cada uno de los escenarios posibles.

Flujo Desarrollar API

Documentación para desarrollar API encargada de comunicar información sobre los tickets de la empresa. Esta API será consumida automáticamente por AutoFactura mediante la interacción de los usuarios finales en el portal.


Método Buscar TicketAPI

Método encargado de enviar toda la información relevante del ticket, así como de sus diferentes estatus. La petición sera POST a la URL /buscar_ticket.

Nota:Este método sera consumido cada vez que un usuario busque un ticket en el portal de AutoFactura

Estructura de la petición

Por medio del body se enviará un JSON con la estructura que definió de los campos del ticket que configuró en Domo. Por medio de los headers, se enviará la apiKey.


	{
"headers": {
  "Authorization": "Bearer {apiKey}", // Token de autorización generado en Domo   },
"body":{...}//Campos del ticket
}

Estructura de la respuesta esperada

{
"status": int, // Indica el estatus del ticket de acuerdo al catálogo `ticketStatus` "rfc": string, // RFC emisor, al que corresponde el ticket, solo en caso de ser un grupo de empresas "ticketData": { // Si el ticket es válido, se mostrara toda la informacion relevante al ticket     "total": double, // Sumatoria de los totales de todos los conceptos     "subtotal": double, // Sumatoria de los subtotales de todos los conceptos     "formaPago": string, // De acuerdo a Catálogo SAT [c_FormaPago]     "codigoPostal": string, // Código postal del emisor, de acuerdo a Catálogo SAT [c_CodigoPostal]     "serie": string, // (Opcional) Para control interno del contribuyente     "folio": string, // (Opcional) Para control interno del contribuyente     "listaElementos": [ // El ticket puede contener uno o más productos, desgloza cada producto de esta manera
        {    "cantidad": int, // Cantidad de productos    "claveProdServSAT": str, // De acuerdo a Catálogo SAT [c_ClaveProdServ]    "claveUnidadSAT": str, // De acuerdo a Catálogo SAT [c_ClaveUnidad]    "descripcion": str, // Descripción del producto vendido    "valorUnitario": double, // Total del producto, sin IVA    "importe": double, // Debe ser equivalente a multiplicar la `cantidad` * `valor unitario`    "objetoImp": str, // De acuerdo a Catálogo SAT [c_ObjetoImp]    "unidad": str, // (Opcional) Unidad de medida propia de la operación del emisor    "impuestos": {  "trasladados": [ {  "base": double, // Base para el calculó del impuesto  "importe": double, // El IVA que se calculó sobre la base  "impuesto": str, // De acuerdo a Catálogo SAT [c_Impuesto]  "tipoFactor": str, // De acuerdo a Catálogo SAT [c_TipoFactor]  "tasaOCuota": double, // Decimal que depende de `tipoFactor` } ] } } ] },     "billData": { // Cuando el estatus del ticket es 3 ó 4, es requerida esta llave     "uuid": string, // UUID de la factura relacionada al ticket     "base64": string, // Cadena de texto de representación del XML de la factura en base64     "base64PDF": string, // Cadena de texto de representacion del PDF de la factura en base64 },     "clientData": { // Nodo opcional, en el cual se puede enviar la información del cliente relacioado al ticket     "rfc": string, // RFC del cliente al que corresponde el ticket     "razonSocial": string, // Cadena de texto de representación del XML de la factura en base64     "codigoPostal": string, // De acuerdo a Catálogo SAT [c_CodigoPostal] }

Catálogo de códigos de `ticketStatus`

Código Estatus Descripción
0 Ticket inválido El ticket no existe.
1 Ticket válido El ticket existe y está disponible para facturar.
2 Ticket fuera de fecha El ticket existe, pero ya no está disponible para facturar debido a que se cumplió el tiempo límite para facturarse.
3 Ticket facturado El ticket existe y ya fue facturado, es requerido retornar la llave billData.
4 Ticket factura global El ticket fue facturado en una factura global pero se podrá facturar al usuario final generando una nota de crédito, es requerido retornar la llave billData.

Método Ticket Facturado

Método encargado de enviar toda la información relevante de timbrado de uno o más tickets. La petición sera POSTa la URL /ticket_facturado.

Nota: Este método será llamado cada vez que un usuario timbre uno o más ticket en el portal de AutoFactura.


Estructura de la petición


	{
"invoiceList": [ // Arreglo de objetos por cada ticket facturado { "invoice": { // Objeto con información del timbrado del ticket "uuid": "str", // UUID de la factura "selloCFD": str, "selloSAT": str, "noCertificadoSAT": str, "base64": str, // Cadena de texto de representación del XML de la factura en base64 "base64PDF": str, // Cadena de texto de representacion del PDF de la factura en base64 "fechaTimbrado": str, // Fecha en la que la factura fue timbrada, formato: YYYY-MM-DDThh:mm:ss }, "notaCredito": { // Objeto con información del timbrado de la nota de crédito (Llave incluida solo cuando se generó una nota de crédito) "uuid": "str", // UUID de la factura "selloCFD": "str", "selloSAT": "str", "noCertificadoSAT": "str", "base64": "str", // Cadena de texto de representación del XML de la factura en base64 "base64PDF": "str", // Cadena de texto de representacion del PDF de la factura en base64 "fechaTimbrado": "str", // Fecha en la que la factura fue timbrada, formato: YYYY-MM-DDThh:mm:ss }, "ticket": { ... } // Objeto con los campos del ticket } ] }

Estructura de la respuesta esperada


	{
"status": "okay" }

Flujo Consumir API

Documentación sobre como consumir API de AutoFactura para almacenar los tickets de su empresa. La información de los tickets será almacenada en las bases de datos de AutoFactura.
El servicio se encuentra disponible en la dirección URL: https://yxigq90o38.execute-api.us-west-1.amazonaws.com/develop

Método Almacenar Ticket

Método encargado de almacenar los tickets de su empresa en AutoFactura La petición debe ser POST a la URL /tickets/almacenar

NOTA: Este método debe ser llamado cada vez que usted emita un nuevo ticket, para que sea almacenado en AutoFactura.


Estructura de la petición


   {
"rfc": str, // RFC emisor, al que corresponde el ticket "apiKey": str, // API key proporcionada para consumir el servicio "fechaEmision": str, // Fecha en la que el ticket fue emitido, formato: YYYY-MM-DDThh:mm:ss ticket: { "custom": {}, // Objeto JSON con información no fiscal que será necesaria para que el usuario final identifique el ticket "comprobante": { "total": double, // Sumatoria de los totales de todos los conceptos "subtotal": double, // Sumatoria de los subtotales de todos los conceptos "formaPago": string, // De acuerdo a Catálogo SAT [c_FormaPago] "codigoPostal": string, // De acuerdo a Catálogo SAT [c_CodigoPostal] "serie": string, // (?) Para control interno del contribuyente "folio": string, // (?) Para control interno del contribuyente "listaElementos": [ // El ticket puede contener uno o más productos, desgloza cada producto de esta manera { "cantidad": int, // Cantidad de productos "claveProdServSAT": str, // De acuerdo a Catálogo SAT [c_ClaveProdServ] "claveUnidadSAT": str, // De acuerdo a Catálogo SAT [c_ClaveUnidad] "descripcion": str, // Descripción del producto vendido "valorUnitario": Double, // Total del producto, sin IVA "importe": Double, // Debe ser equivalente a multiplicar la `cantidad` * `valor unitario` "objetoImp": str, // De acuerdo a Catálogo SAT [c_ObjetoImp] "unidad": str, // (?) Unidad de medida propia de la operación del emisor "impuestos": { "trasladados": [ { "base": double, // Base para el calculó del impuesto "importe": double, // El IVA que se calculó sobre la base "impuesto": str, // De acuerdo a Catálogo SAT [c_Impuesto] "tipoFactor": str, // De acuerdo a Catálogo SAT [c_TipoFactor] "tasaOCuota": double, // Decimal que depende de `tipoFactor` } ] } } ] } } }

Respuestas esperadas

Sí la petición es correcta, la respuesta será:


	{
	"codigo": 200,
	"mensaje": Ticket almanceado correctamente,
	"respuesta": "",
	}
		

Códigos de error Almacenar Ticket

Código Mensaje Respuesta Descripción
2 Error de validación El campo campo es invalido Se ha enviado un dato incorrecto
6 Error en autenticación - La API key proporcionada es invalida
7 Algo salió mal - Ocurrió un error inesperadoo

Método Consultar Ticket

Método encargado de consultar información de un ticket de su empresa en AutoFactura. Podrá visualizar el estatus del ticket y su información relacionada. La petición debe serPOST a la URL /tickets/info

NOTA: Este método debe ser llamado cada vez que usted emita un nuevo ticket, para que sea almacenado en AutoFactura.


Estructura de la petición


	{
	"apiKey": str, // API key proporcionada para consumir el servicio 
	"ticket": { ... } // Objeto con los campos del ticket
	}
		

Respuestas esperadas

Sí la petición es correcta, la respuesta será:


	{
	"codigo": 200, 
	"mensaje": "Ticket almanceado correctamente",
	"respuesta": {
	   "estatus": str, // Indica estatus del ticket [valido, facturado, cancelado, expirado]
	   "ticketData": { ... }, // Objeto con toda la información del ticket
	   "rfc": str, // En caso de ser un grupo, indica el rfc de la empresa del ticket
	    "total": str, // Total del ticket
	    "serie": str, // Serie del ticket
	    "folio": str, // Folio del ticket
	    "fechaRecepcion": str, // Fecha en que se recibió el ticket, formato YYYY-MM-DD hh:mm:ss
	    "fechaVida": str, Fecha de emisión del ticket, formato YYYY-MM-DD hh:mm:ss
	    "fechaCancelacion": str, // (estatus cancelado) Fecha en que se cancelo el ticket, formato: YYYY-MM-DD hh:mm:ss
	    "ticketData": { // (estaus facturado) Objeto con la información fiscal de la factura emitida del ticket
	    	"uuid": str, // UUID de la factura
	    	"xml": str, // Cadena de texto en base 64 del XML de la factura
	    	"fechaTimbrado": str, // Fecha de timbrado de la factura, formato: YYYY-MM-DD hh:mm:ss
	   		 }
	  	 }
	}
		

Códigos de error Consultar Ticket

Código Mensaje Respuesta Descripción
2 Error de validación El campo campo es invalido Se ha enviado un dato incorrecto
6 Error en autenticación - La API key proporcionada es invalida
7 Algo salió mal - Ocurrió un error inesperadoo

Método Cancelar Ticket

Método encargado de cancelar tickets almacenados en AutoFactura. La petición debe ser POST a la URL /tickets/cancelar

NOTA: Este método debe ser llamado cada vez que usted necesite cancelar un ticket en AutoFactura.


Estructura de la petición


	{
	"apiKey": str, // API key proporcionada para consumir el servicio  
	"ticket": { ... } // Campos del ticket (*)
	}
		

Respuestas esperadas

Sí la petición es correcta, la respuesta será:


	{
	"codigo": 200,  
	"mensaje": "Ticket cancelado correctamente",
	respuesta:  "",
	}
		

Códigos de error Método Cancelar Ticket

Código Mensaje Respuesta Descripción
6 Error en autenticación - La API key proporcionada es invalida
7 Ticket inválido - El ticket buscado no existe
8 El ticket ya ha sido facturado - El ticket ya ha sido facturado previamente y no puede cancelarse
9 El ticket ya ha sido cancelado anteriormente - El ticket no puede cancelarse debido a que ya tiene el estatus de cancelado
500 Algo salió mal - Ocurrió un error inesperado