AvaPOS API

De AvaPOSWiki
Saltar a: navegación, buscar



Introducción

El API público de AvaPOS fue creado para facilitar el acceso a los datos de los clientes que usan los sistemas AvaPOS y PractiPOS, la misma que puede ser leída y modificada; además también se puede insertar información nueva a la base de datos en algunos casos que se describen en lo posterior.

Para hacer uso del API es necesario tener una cuenta activa de los sistemas AvaPOS o PractiPOS, además de haber obtenido la clave única de acceso a la información, que de aquí en adelante se llamará "APIKEY".

Requerimientos

Para utilizar el API de AvaPOS son necesarios los siguientes requisitos:

  • Cuenta Activa.- Tener una cuenta activa de AvaPOS,PractiPOS.
  • APIKEY.- Haber obtenido la clave única de acceso para el API.


Características Generales

Las peticiones al API de AvaPOS/PractiPOS se realizarán a la siguiente URL: http://practisis.net/apis/practipos/api.php, esta requiere de 4 parámetros específicos que pueden ser enviados por métodos get o post, estos son:

  • key (String).- El APIKEY mencionado anteriormente, como clave de acceso.
  • action (String).- La acción que se requiere del API, se permiten solo: 'get','set' o 'create'.
  • typedata(String).- El tipo de dato al que se le aplicará la acción requerida. Se permiten solo las siguientes posibilidades :'facturas','clientes','productos','compras' o 'fisico'
  • data (String formato JSON).- Una cadena con formato JSON, la cual contiene la información adicional requerida para que el API ejecute la acción requerida.

Luego de ejecutada la llamada al API, este devolverá una cadena de respuesta la cual será un error dado el caso o una cadena de texto en formato JSON con la respuesta obtenida.


Ejemplo de Operación

Como mencionamos anteriormente el API, proporcionará información requerida por el usuario mediante una petición en donde se envíen los parámetros descritos; a continuación se muestra un ejemplo de la operación en donde se obtienen los datos de las facturas generadas durante el período de Julio 01 a Julio 15.

Petición

  • Mediante URL directa (get)

http://practisis.net/apis/practipos/api.php?key=MTk4NjE4Ni40LjE5Mi4xOT******&action=get&typedata=facturas&data={%22desde%22:%222016-07-01%22,%22hasta%22:%222016-07-15%22}

  • Mediante petición ajax (post)
var mykey="MTk4NjE4Ni40LjE5Mi4xOT******";
var myaction="get";
var mytypedata="facturas"
var mydata='{"desde":"2016-07-01","hasta":"2016-07-15"}';
$.ajax({
   url: "http://practisis.net/apis/practipos/api.php",
   data:{key:mykey,action:myaction,typedata:mytypedata,data:mydata}
}).done(function(response) {
   $('#results').html(response);
});

Respuesta

Se obtiene una cadena de respuesta en formato JSON

{
	"Facturas": [{
		"id": "1399",
		"total": "14.74",
		"subtotal": "13.16",
		"fecha": "2016-07-15 13:15:13-05",
		"establecimiento": "002",
		"caja": "001",
		"numerofactura": "000000026",
		"iva": "1.58",
		"servicio": "0.00",
		"propina": "0.00",
		"abono": "0.00",
		"descuento": "0.00",
		"cliente": [{
			"nombre": "Consumidor Final",
			"cedula": "9999999999999"
		}],
		"impuestos": [{
			"id": "1",
			"nombre": "IVA",
			"valor": "1.578948"
		}],
		"consumos": [{
			"producto": "Rubencho",
			"cantidad": "1",
			"precio": "8.7719",
			"descuento": "0",
			"impuestos": "i "
		}, {
			"producto": "Vago",
			"cantidad": "1",
			"precio": "4.386",
			"descuento": "0",
			"impuestos": "i "
		}],
		"pagos": [{
			"formapago": "Tarjetas",
			"valor": "14.74"
		}]
	}, {
		"id": "1916",
		"total": "93.00",
		"subtotal": "75.00",
		"fecha": "2016-07-01 17:16:02-05",
		"establecimiento": "001",
		"caja": "001",
		"numerofactura": "000000001",
		"iva": "10.50",
		"servicio": "7.50",
		"propina": "0.00",
		"abono": "0.00",
		"descuento": "0.00",
		"cliente": [{}],
		"impuestos": [{
			"id": "1",
			"nombre": "IVA",
			"valor": "10.5"
		}, {
			"id": "2",
			"nombre": "Servicio",
			"valor": "7.5"
		}],
		"consumos": [],
		"pagos": [{
			"formapago": "Efectivo",
			"valor": "93"
		}]
	}]
}

Obtención de Datos

Lista de Productos

Para obtener una lista de todos los productos con sus respectivas características, la petición a la API debe enviar tres datos obligatorios: key:APIKEY, action:get y datatype:productos; el parámetro data no es necesario en este caso.

La petición sería como sigue:

        var mykey="MTk4NjE4Ni40LjE5Mi4xOT******";
	var myaction="get";
	var mytypedata="productos"
	var mydata='';
	$.ajax({
	  url: "http://practisis.net/apis/practipos/api.php",
	  data:{key:mykey,action:myaction,typedata:mytypedata,data:mydata}
	}).done(function(response) {
		$('#results').html(response);
	});

La respuesta obtenida sería:

{
	"Productos": [{
		"id": "2",
		"nombre": "agua sin gas",
		"codigo": "2",
		"precio": "0.8772",
		"color": "",
		"matprima": "1",
		"productofinal": "1",
		"categoria": "bebidas",
		"activo": "1",
		"conimpuestos": "1"
	}, {
		"id": "3",
		"nombre": "combo ron",
		"codigo": "3",
		"precio": "15",
		"color": "",
		"matprima": "0",
		"productofinal": "1",
		"categoria": "licores",
		"activo": "1",
		"conimpuestos": "0"
	}, {
		"id": "4",
		"nombre": "Ron San Miguel",
		"codigo": "778778",
		"precio": "10.5263",
		"color": "",
		"matprima": "0",
		"productofinal": "1",
		"categoria": "licores",
		"activo": "1",
		"conimpuestos": "1"
	}]
}

En la cual consta una lista de los productos ingresados en el sistema junto con las siguientes características:

  • id.- El número único de identificación del producto.
  • nombre.- El nombre del producto.
  • codigo.- Cadena alfanumérica que representa el código del producto.
  • precio.- El precio unitario con el que se expende el producto.
  • color.- Si es un sistema AvaPOS, es el color con el que se presenta en la consola de comandas.
  • matprima.- Número 0 si el producto no es materia prima y 1 caso contrario.
  • productofinal.- Número 0 si el producto no es un producto para la venta y 1 caso contrario.
  • categoria.- El nombre de la categoría a la que pertenece el producto.
  • activo.-Número 1 si el producto está activo, 0 caso contrario.
  • conimpuestos.- Número 1 si al producto se le aplican los impuestos activos, 0 caso contrario.


Lista de Clientes

Para obtener una lista de todos los clientes con sus respectivas características, la petición a la API debe enviar tres datos obligatorios: key:APIKEY action:get datatype:clientes el parámetro data no es necesario en este caso.

Una vez realizada la petición, la respuesta sería similar a:

{
	"Clientes": [{
		"nombre": "Consumidor Final",
		"cedula": "9999999999999",
		"telefono": "0987654321",
		"direccion": "sin direccion",
		"email": "info@practisis.com"
	}, {
		"nombre": "Hotel Patio A ",
		"cedula": "12222222001",
		"telefono": "2258990",
		"direccion": "Av. Calle",
		"email": "tesoreria@hotel.com"
	}, {
		"nombre": "Discoteca E ",
		"cedula": "00000000014001",
		"telefono": "2264595",
		"direccion": "ND",
		"email": ""
	}]
}

En la cual consta una lista de clientes ingresados en el sistema junto con las siguientes características:

  • nombre.- El nombre o razon social del cliente.
  • cedula.- El número de identificación (CI,RUC o Pasaporte) del cliente.
  • telefono.- El número telefónico del cliente.
  • direccion.- La dirección del cliente.
  • email.- El correo electrónico del cliente.


Lista de Facturas

Para obtener una lista de las facturas con sus respectivas características, la petición a la API debe enviar cuatro datos obligatorios: key:APIKEY action:get datatype:facturas data:{"desde":"{fecha_ini}","hasta":"{fecha_fin}"} por ejemplo: {"desde":"2016-07-01","hasta":"2016-07-15"}

Una vez realizada la petición, la respuesta sería una lista con items similares a:

{
	"Facturas": [{
		"id": "1399",
		"total": "14.74",
		"subtotal": "13.16",
		"fecha": "2016-07-15 13:15:13-05",
		"establecimiento": "002",
		"caja": "001",
		"numerofactura": "000000026",
		"iva": "1.58",
		"servicio": "0.00",
		"propina": "0.00",
		"abono": "0.00",
		"descuento": "0.00",
		"cliente": [{
			"nombre": "Consumidor Final",
			"cedula": "9999999999999"
		}],
		"impuestos": [{
			"id": "1",
			"nombre": "IVA",
			"valor": "1.578948"
		}],
		"consumos": [{
			"producto": "Rubencho",
			"cantidad": "1",
			"precio": "8.7719",
			"descuento": "0",
			"impuestos": "i "
		}, {
			"producto": "Vago",
			"cantidad": "1",
			"precio": "4.386",
			"descuento": "0",
			"impuestos": "i "
		}],
		"pagos": [{
			"formapago": "Tarjetas",
			"valor": "14.74"
		}]
	}]
}

En la cual consta una lista de facturas ingresados en el sistema en el rango de fecha especificado junto con las siguientes características:

  • id.- El número único identificador de la factura
  • total.- Valor total de la factura.
  • subtotal.- Subtotal neto de la factura.
  • fecha.- La fecha de creación de la factura.
  • establecimiento.- El número de establecimiento en el que se realizó la factura.
  • caja.- El número de caja en el que se realizó la factura.
  • numerofactura.- El número secuencial de la factura.
  • iva.- El valor de iva grabado en la factura.
  • servicio.- El valor de servicio grabado en la factura.
  • propina.- El valor de propina grabado en la factura.
  • abono.- El valor del abono pagado de la factura.
  • descuento.- El valor de descuento grabado en la factura.
  • cliente.- Cadena JSON con datos del cliente vinculado a la factura en el que constan nombre e numero ID.
  • impuestos.- Cadena JSON con una lista de los impuestos aplicados a la factura en el que constan nombre del impuestos y valor.
  • consumos.- Cadena JSON con una lista de los consumos grabados en la factura en el que constan nombre,cantidad,descuento,precio unitario del producto.
  • pagos.- Cadena JSON con datos de las formas de pago de la factura en el que constan nombre de la forma de pago y el valor.


Lista de Reservas

El API de Practisis ofrece la opción de obtener una lista de reservas detallada por tipo de habitación, además de un resúmen de estas detallado por día y tipo de habitación. Para obtenerla; la petición al API debe enviar cuatro datos obligatorios: key:APIKEY action:get datatype:reservas data:{"checkout":"{fecha_checkout}"} por ejemplo: data:{"checkout":"2016-01-28"}

En donde data es un objeto JSON con el dato 'checkout', el cual marcará la fecha límite de check_out para listar las reservas.

Un ejemplo de petición usando AJAX sería como sigue:

        var mykey="MTk4NjE4Ni40LjE5Mi4xOT******";
	var myaction="get";
	var mytypedata="reservas"
	var mydata='{"checkout":"2016-01-28"}';
	$.ajax({
	  url: "http://practisis.net/apis/practipos/api.php",
	  data:{key:mykey,action:myaction,typedata:mytypedata,data:mydata}
	}).done(function(response) {

	});

Una vez realizada la petición, la respuesta sería una lista con items similares a:

{
	"totales": [{
		"date": "2016-01-31 00:00:00",
		"physical_room": "Duplex",
		"room_revenue": "984.00",
		"occupied_rooms": "31",
		"room_availability": "-16",
		"net_room_inventory": "15",
		"room_inventory": "15",
		"room_occupancy": "206.67",
		"room_adr": "31.74",
		"room_revpar": "65.60",
		"currency": "USD"
	}, {
		"date": "2016-02-01 00:00:00",
		"physical_room": "Duplex",
		"room_revenue": "984.00",
		"occupied_rooms": "31",
		"room_availability": "-16",
		"net_room_inventory": "15",
		"room_inventory": "15",
		"room_occupancy": "206.67",
		"room_adr": "31.74",
		"room_revpar": "65.60",
		"currency": "USD"
	}],
	"detalles": [{
		"ID": "1989",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Requerida",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1985",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1984",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1988",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1992",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1996",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1972",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1973",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1974",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1975",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1976",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1977",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1979",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1986",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1990",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1994",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1983",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1987",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1991",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1981",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1982",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1960",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1961",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1962",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1963",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1964",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1966",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1969",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1970",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}, {
		"ID": "1971",
		"channel": "Rack",
		"channel_type": "Off Line",
		"status": "Confirmada",
		"booking_date": "2016/01/28",
		"cancel_date": "",
		"check-in_date": "2016/01/28",
		"check-out_date": "2016/01/31",
		"net_price": "3718.84",
		"commissioned_price": "0.00",
		"gross_price": "3718.84",
		"pvp_price": "3718.84",
		"currency": "USD",
		"adult_occupancy": "1",
		"children_occupancy": "0",
		"physical_room": "Duplex",
		"room_type": "Duplex",
		"rate_plan": "Rack",
		"guest_segment": "",
		"guest_nacionality": "",
		"meal_plan": "",
		"meal_price": "",
		"cancel": "",
		"cancel_revenue": "0.00",
		"group": "false"
	}]
}

La cual consta de dos partes: totales y detalles.

Totales: Este objeto está detallado por fecha y por tipo de habitación, abarcando los totales de todas las reservas cuyo checkout es menor o igual que la fecha enviada como parámetro límite; consta de los siguientes datos:

  • date.-La fecha del día listado
  • physical_room.- Nombre del tipo de Habitación.
  • room_revenue.- Ingresos por tipo de Habitación en el día.
  • occupied_rooms.- Habitaciones ocupadas en el día.
  • room_availability.-Habitaciones habilitadas en el día.
  • net_room_inventory.- Número total de habitaciones descontando las bloqueadas por tipo de habitación.
  • room_inventory.- Número total de habitaciones en el hotel por tipo de habitación.
  • room_occupancy.- Porcentaje de ocupación en el día por tipo de habitación.
  • room_adr.- Valor del average daily rate en el día por tipo de habitación.
  • room_revpar.- Valor del RevPar en el día por tipo de habitación.
  • currency.- Moneda utilizada.


Detalles: Este objeto está detallado por reserva y por tipo de habitación, abarcando todas las reservas cuyo checkout es menor o igual que la fecha enviada como parámetro límite; consta de los siguientes datos:

  • ID.-ID de la reserva.
  • channel.- Nombre del canal.
  • channel_type.- Tipo de canal OnLine u OffLine.
  • status.- Estado de la reserva.
  • booking_date.-Fecha en la que se hizo la reserva.
  • cancel_date.- Si la reserva se canceló, fecha de la cancelación.
  • check-in_date.- Fecha del check in.
  • check-out_date.- Fecha del check out.
  • net_price.- Valor neto de la reserva sin impuestos ni comisiones.
  • commissioned_price.- Valor neto de la reserva más comisiones.
  • gross_price.- Valor neto de la reserva más impuestos.
  • pvp_price.- Valor total de la reserva pagada por el cliente.
  • currency.- Moneda utilizada.
  • adult_occupancy.- Número de personas adultas alojadas.
  • children_occupancy.- Número de menores de edad alojados.
  • physical_room.- Nombre del tipo de habitación.
  • room_type.- Nombre Comercial del tipo de habitación.
  • rate_plan.- Nombre de la tarifa con la que se cobra la reserva.
  • guest_segment.- Segmento al que pertenece el huésped.
  • guest_nacionality.- Nacionalidad del huésped.
  • meal_plan.- Plan Alimenticio.
  • meal_price.- Valor del Plan Alimenticio.
  • cancel.- Condiciones de cancelación de reserva.
  • cancel_revenue.- Ingresos generados por la cancelación de la reserva.
  • group.- Indica si la reservas es grupal.

Creación de Datos

Crear Productos

La API proporciona una opción para ingresar productos mediante una petición similar a:

$(document).ready(function(){
	var mykey="MTk4NjE4Ni40LjE5Mi4xOT******";
	var myaction="create";
	var mytypedata="productos"
	var mydata='{"nombre":"Producto API 1","categoria":"PALETAS","precio":"3.50","codigo":"","conimpuestos":"0","color":"rgb(113, 60, 25)"}';
	$.ajax({
	  url: "http://practisis.net/apis/practipos/api.php",
	  data:{key:mykey,action:myaction,typedata:mytypedata,data:mydata}
	}).done(function(response) {
		$('#results').html(response);
	});
});

En donde key=APIKEY, action:create, typedata:productos y data es una cadena JSON con los siguientes parámetros:

  • nombre.- (Obligatorio)-El nombre del producto a ingresar, este no debe repetirse.
  • categoria.-(Obligatorio)-El nombre de la categoría a la que pertenece el producto, si no existe en ese momento en la base de datos se creará automáticamente.
  • precio.-(Opcional)-El precio sin impuestos con el que se expende el producto, si no se determina será 0.
  • codigo.-(Opcional)-El código del producto, si no se determina será el id del producto.
  • conimpuestos.-(Opcional)-Determina si al producto se le aplican impuestos en el momento de la venta, se aplicarán los impuestos que en ese momento estén activos.
  • color.-(Opcional)-El color con que el producto se desplegará en la consola de comandos de AvaPOS.

Una vez hecha la petición si esta tiene éxito se devolverá como respuesta el id del producto ingresado, caso contrario un mensaje de error.

Crear Clientes

La API proporciona una opción para ingresar clientes mediante una petición similar a:

$(document).ready(function(){
	var mykey="MTk4NjE4Ni40LjE5Mi4xOT******";
	var myaction="create";
	var mytypedata="clientes"
	var mydata='{"nombre":"Cliente API 3","identificacion":"172010****","direccion":"Av. Los Bosques 3","email":"cliente3@apipractisis.com","telefono":"3333333"}';
	$.ajax({
	  url: "http://practisis.net/apis/practipos/api.php",
	  data:{key:mykey,action:myaction,typedata:mytypedata,data:mydata}
	}).done(function(response) {
		$('#results').html(response);
	});
});

En donde key=APIKEY, action:create, typedata:clientes y data es una cadena JSON con los siguientes parámetros:

  • nombre.- (Obligatorio)-El nombre del cliente a ingresar.
  • identificacion.-(Obligatorio)-El número de identificación del cliente este no debe repetirse, ya que será un identificador unico, además debe ser un número de ID,ruc o pasaporte válidos; caso contrario, no se ingresará el cliente.
  • direccion.-(Opcional)-La dirección domiciliaria del cliente.
  • email.-(Opcional)-El correo electrónico del cliente.
  • telefono.-(Opcional)-El número de teléfono del cliente.

Una vez hecha la petición si esta tiene éxito se devolverá como respuesta el número de identificación del cliente, caso contrario un mensaje de error.

Crear Asientos

La API proporciona una opción para crear asientos contables mediante una petición similar a:

$(document).ready(function(){
	var mykey="MTk4NjE4Ni40LjE5Mi4xOT******";
	var myaction="create";
	var mytypedata="asientos"
	var mydata='{"fecha":"2017-01-03","referencia":"Asiento de API test","documento":"Fact. 002-005-0215","observacion":"referencia: 1245","cuentas":[{"nombre":"1.1.1.6","debe":"1.00","haber":"0.00","centrocosto":"","descripcion":"Diario de Asiento API test"},{"nombre":"2.1.1.1.1042","debe":"0.20","haber":"0.00","centrocosto":"","descripcion":"Diario de Asiento API test"}]}';
	$.ajax({
	  url: "http://practisis.net/apis/practipos/api.php",
	  data:{key:mykey,action:myaction,typedata:mytypedata,data:mydata}
	}).done(function(response) {
		$('#results').html(response);
	});
});

En donde key=APIKEY, action:create, typedata:asientos y data es una cadena JSON con los siguientes parámetros:

  • fecha.- (Opcional)-La fecha con la que se creará el asiento contable, si no se determina se colocará la fecha actual.
  • referencia.-(Opcional)-Referencias a documentos,asientos,nombres,etc.
  • documento.-(Opcional)-Número del documento sobre el que se respalda el asiento en caso de ser necesario.
  • observacion.-(Opcional)-Alguna observación adicional sobre el asiento.
  • cuentas.-(Obligatorio)-Lista de cuentas contables a ingresar en los diarios del asiento, debe cumplir con cierta estrcutura json, como sigue:
  • nombre.-(Obligatorio)-Nombre de la cuenta contable, ingresado en el sistema anteriormente, si se detecta una cuenta no existente el diario subirá con una cuenta vacía o 0.
  • debe.-(Obligatorio)-Valor que se enviará al rango positivo del diario.
  • haber.-(Obligatorio)-Valor que se enviará al rango negativo del diario.

Si se le dan valores a ambos campos (debe,haber) se realizará la operación (debe-haber) para ingresar el valor del diario.

  • centrocosto.-(Obligatorio)-Nombre del centro de costo al que pertenece el diario.
  • descripcion.-(Obligatorio)-Descripción del concepto del diario.

Una vez hecha la petición si esta tiene éxito se devolverá como respuesta el id del asiento contable ingresado, caso contrario un mensaje de error.

Crear Facturas

La API proporciona una opción para crear facturas mediante el envío de una objeto json cuyo formato deberá ser:

{
	"cliente": {
		"cedula": "1719147488",
		"nombre": "Customer Name",
		"telefono": "022596955",
		"direccion": "",
		"email": "customer.89@hotmail.com"
	},
	"factura": {
		"numerofact": "001-001-000000104",
		"fecha": "2017-02-01",
		"total": "10.24",
		"subtotal_iva": "10.00",
		"subtotal_sin_iva": "0",
		"impuestos": [{
			"nombre": "iva",
			"valor": "0.14",
			"porcentaje": "14"
		}, {
			"nombre": "servicio",
			"valor": "0.10",
			"porcentaje": "10"
		}],
		"descuento": "0.00",
		"propina": "2.00"
	},
	"productos": [{
		"nombre": "Pollo Asado",
		"codigo": "55677",
		"precio_unitario": "10.00",
		"unidad": "unidad",
		"cantidad": "1",
		"precio_sim_imp": "10.00",
		"impuestos": "iva,servicio",
		"precio_total": "10.24",
		"descuento": "0.00"
	}],
	"pagos": [{
		"forma": "efectivo",
		"valor": "20.00",
		"nombretarjeta": "",
		"lote": "",
		"numerocheque": "",
		"banco": ""
	}, {
		"forma": "efectivo",
		"valor": "-9.76",
		"nombretarjeta": "",
		"lote": "",
		"numerocheque": "",
		"banco": ""
	}]

}

Además de los datos: key=APIKEY, action:create, typedata:facturas. En este caso el argumento data que es la cadena JSON anteriormente mostrada; está formado por los objetos: cliente, factura, productos y pagos.

El Objeto cliente consta de:

  • cedula.- (Obligatorio)-El número de identificación del cliente, si es consumido final será 9999999999999
  • nombre.-(Obligatorio)-El nombre del cliente.
  • telefono.-(Opcional)-Número telefónico del cliente.
  • dirección.-(Opcional)-Dirección domiciliaria del cliente.
  • email.-(Opcional)-Email del cliente, en caso de contar con facturación electrónica este campo es obligatorio.

El Objeto factura consta de:

  • numerofact.- (Obligatorio)- Número único de identificación de la factura, consta del número de establecimiento, seguido del número de caja y el número de serie de la factura, ej. 001-001-000000123.
  • fecha.-(Obligatorio)-La fecha de emisión de la factura.
  • total.-(Obligatorio)-El monto total de la factura, ya aplicado impuestos y descuentos.
  • subtotal_iva.-(Obligatorio)-El subtotal neto sobre el cual se aplica iva.
  • subtotal_sin_iva.-(Obligatorio)-El subtotal neto sobre el cual no se aplica iva.
  • impuestos.-(Obligatorio)-Objeto tipo Arreglo en donde se registran el nombre,valor y porcentaje de los impuestos aplicados a la factura; en caso de no tener impuestos se enviará un objeto vacio ej. "impuestos":[].

El Objeto productos consta de:

El Objeto productos es de tipo arreglo, dentro del cual se describen los items vendidos en la factura, con los siguientes argumentos:

  • nombre.- (Obligatorio)-El nombre del item facturado.
  • codigo.-(Obligatorio)-El código único del item facturado.
  • precio_unitario.-(Obligatorio)-El precio unitario del item facturado.
  • unidad.-(Obligatorio)-La unidad en la que fue facturado el item.
  • cantidad.-(Obligatorio)-La cantidad de items facturados.
  • precio_sin_imp.-(Obligatorio)-El precio de los items facturados exentos de impuestos.
  • impuestos.-(Obligatorio)-Cadena donde constan los nombre de los impuestos aplicados al producto separados por comas ej. (iva,servicio).
  • precio_total.-(Obligatorio)-El precio total de los items facturados ya aplicados los impuestos y descuentos.
  • descuento.-(Obligatorio)-El valor total del descuento aplicado a los items facturados.


El Objeto pagos consta de:

El Objeto pagos es de tipo arreglo, dentro del cual se describen las formas de pago con las que se saldó la factura, con los siguientes argumentos:

  • forma.- (Obligatorio)-El nombre de la forma de pago utilizada Ej. efectivo,tarjeta,etc.
  • valor.-(Obligatorio)-El monto pagado con dicha forma de pago.
  • nombretajeta.-(Opcional)-Si la forma de pago es tarjeta, se enviará el nombre de la tarjeta utilizada.
  • lote.-(Opcional)-Si la forma de pago es tarjeta, se enviará el lote de la tarjeta utilizada.
  • numerocheque.-(Opcional)-Si la forma de pago es cheque, se enviará el número de cheque.
  • banco.-(Obligatorio)-Si la forma de pago es cheque, se enviará el nombre de la entidad bancaria emisora.


Una vez hecha la petición si esta tiene éxito se devolverá como respuesta el id de la factura ingresada, caso contrario un mensaje de error.

Actualización de Datos

Actualizar Productos

La API proporciona una opción para actualizar los datos de los clientes mediante una petición similar a:

$(document).ready(function(){
	var mykey="MTk4NjE4Ni40LjE5Mi4xOT******";
	var myaction="set";
	var mytypedata="productos"
	var mydata='{"id":"8","nombre":"Producto API 1","categoria":"PALETAS","precio":"3.50","codigo":"","conimpuestos":"0","color":"rgb(113, 60, 25)"}';
	$.ajax({
	  url: "http://practisis.net/apis/practipos/api.php",
	  data:{key:mykey,action:myaction,typedata:mytypedata,data:mydata}
	}).done(function(response) {
		$('#results').html(response);
	});
});

En donde key=APIKEY, action:set, typedata:productos y data es una cadena JSON con los siguientes parámetros:

  • id.- (Obligatorio)-El id del producto registrado en el sistema, este será el identificador del mismo, para realizar la actualización.
  • nombre.- (Obligatorio)-El nombre a actualizar del producto, si existe otro producto con el mismo nombre, no se actualizarán los datos.
  • categoria.-(Obligatorio)-El nombre de la categoría a actualizar a la que pertenece el producto; si esta no existe se creará.
  • precio.-(Opcional)-El precio a actualizar sin impuesto con el que se expenderá el producto.
  • codigo.-(Opcional)-El código a actualizar del producto ingresado, si existe otro producto con el mismo código, la información no se actualizará.
  • conimpuestos.-(Opcional)- 1 Si el producto aplicará impuestos al facturar, 0 caso contrario.
  • color.-(Opcional)- El color con que el producto se desplegará en la consola de comandos de AvaPOS.

Una vez hecha la petición si esta tiene éxito se devolverá como respuesta el id del producto, caso contrario un mensaje de error.


Actualizar Clientes

La API proporciona una opción para actualizar la información ingresada de los clientes mediante una petición similar a:

$(document).ready(function(){
	var mykey="MTk4NjE4Ni40LjE5Mi4xOT******";
	var myaction="set";
	var mytypedata="clientes"
	var mydata='{"nombre":"Cliente API 3","identificacion":"172010****","direccion":"Av. Los Bosques 3","email":"cliente3@apipractisis.com","telefono":"3333333"}';
	$.ajax({
	  url: "http://practisis.net/apis/practipos/api.php",
	  data:{key:mykey,action:myaction,typedata:mytypedata,data:mydata}
	}).done(function(response) {
		$('#results').html(response);
	});
});

En donde key=APIKEY, action:set, typedata:clientes y data es una cadena JSON con los siguientes parámetros:

  • nombre.- (Obligatorio)-El nombre del cliente a actualizar.
  • identificacion.-(Obligatorio)-El número de identificación del cliente este es el identificador con el que se procederán a hacer las actualizaciones.
  • direccion.-(Opcional)-La dirección domiciliaria a actualizar del cliente.
  • email.-(Opcional)-El correo electrónico a actualizar del cliente.
  • telefono.-(Opcional)-El número de teléfono a actualizar del cliente.
Una vez hecha la petición si esta tiene éxito se devolverá como respuesta el número de identificación del cliente, caso contrario un mensaje de error.