Documentación API

Descripción

A continuación se describen los pasos a seguir para implementar la API de forma correcta. Siga a detalle cada paso, si presenta algun problema comuniquese con nosotros al correo: soporte@acontrol.com.mx.

Autenticación

La llave de autenticación es usada para autenticar todas tus llamadas al servidor de AControl por medio de una autenticación basada en una llave de Usuario. La llave de usuario debe ser proporcionada por el propietario de la cuenta AControl.

Además de la llave de usuario se utiliza la cabecera: "X-Authorization", la cual también debe ser proporcionada por el propietario de la cuenta AControl.

Métodos de Interacción

URL

URL base para consumir la API.

 https://cloud.acontrol.net/restapi/v1

1.- Crear un pedido

Método URL
POST /guardar_pedido

Ejemplo PHP:

  CURLOPT_URL => "https://cloud.acontrol.net/restapi/v1/guardar_pedido"
  CURLOPT_CUSTOMREQUEST => "POST"

- Establecer cabeceras:

  CURLOPT_HTTPHEADER => array(
    "content-type: application/x-www-form-urlencoded",
    "X-Authorization: e06952e347066213419ab45a15e37fb45c91f614"
  );

*NOTA: Es muy importante establecer las cabeceras, sin ellas no se permitira el consumo de la API.

- Campos de la petición:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
usuario_key SI varchar (alfanumérico sin espacios) 50 Llave del usuario.
fecha_emision SI varchar 20 Fecha de creación del pedido.
folio_alt NO varchar 50 Folio alternativo del pedido.
id_cotizacion NO int 10 Id de la cotización realizada.
id_cliente NO int 10 Id del cliente de su sitio, para que este dato sea correcto se debe vincular previamente los clientes desde el modulo de clientes.
empresa_cli NO varchar 150 Nombre de la empresa a la que pertenece el cliente.
nombre_cli SI varchar 100 Nombre del cliente al que se hizo el pedido.
area_cli SI varchar 150 Nombre del área a la que pertenece el cliente.
calle_cliente NO varchar 300 Nombre de la calle. Este dato se define cuando no se ingresa un id del cliente.
numExt_cliente NO varchar 50 Número exterior del lugar donde se encuentra el cliente. Este dato se define cuando no se ingresa un id del cliente.
numInt_cliente NO varchar 50 Número interior del lugar donde se encuentra el cliente. Este dato se define cuando no se ingresa un id del cliente.
colonia_cliente NO varchar 300 Nombre de la colonia. Este dato se define cuando no se ingresa un id del cliente.
municipio_cliente NO varchar 300 Nombre del municipio. Este dato se define cuando no se ingresa un id del cliente.
estado_cliente NO varchar 300 Estado donde se ubica el cliente. Este dato se define cuando no se ingresa un id del cliente.
cp_cliente NO varchar 10 Código postal. Este dato se define cuando no se ingresa un id del cliente.
pais_cliente NO varchar 3 Páis donde se encuentra el cliente, se toman unicamente tres digítos. Este dato se define cuando no se ingresa un id del cliente.
rfc_cliente NO varchar 13 Registro Federal del Contribuyente asignado al cliente. Este dato se define cuando no se ingresa un id del cliente.
email_cliente NO varchar 100 Correo Electrónico dle cliente. Este dato se define cuando no se ingresa un id del cliente.
telefono_cliente NO varchar 100 Teléfono de contacto. Este dato se define cuando no se ingresa un id del cliente.
no_compra_cliente NO varchar 50 Número de compra del cliente. Este dato se define cuando no se ingresa un id del cliente.
c_UsoCFDI NO varchar 3 Dato del SAT, tipo de uso de CFDI. Este dato se define cuando no se ingresa un id del cliente.
manejo_iva SI varchar 2 Recibe unicamente dos valores:
1.- "SI"
2.- "NO"
iva_valor NO int 2 Se especifica este valor cuando la variable manejo_iva es "SI". Recibe un valor entero de dos dijitos, ejemplo: 16.
moneda SI int 1 La moneda en que se realizo el pedido.
valorCambio NO float   En caso de que la moneda sea mayor a 1 (Peso Mexicano), se debe ingresar el tipo de cambio de la moneda extrangera.
subtotal SI double   Suma del importe de los productos sin iva.
porciento_desc NO double   Porcentaje del descuento a dos cifras sin punto decimal.
descuento NO double   Valor del descuento aplicado al subtotal.
subtotal2 SI double   Es el resultado del subtotal menos el descuento aplicado.
iva NO double   Monto acumulado del impuesto I.V.A.
total SI double   Es el resultado de la suma del subtotal2 más el impuesto I.V.A.
anticipo SI double   En caso de que el pedido este pagado por completo el anticipo es igual al total, o si es por pagos se debe ingresar el pago.
resta SI double   Es el resultado del total menos el aticipo
estatus_pago SI varchar 15 Recibe unicamente dos valores:
1.- "Pendiente"
2.- "Pagado"
referencia NO varchar 50 Referencia del pedido.
observaciones NO longtext   Observaciones del pedido.
transaccion_autorizacion NO int 11 Número de autorización del pago
transaccion_tipo NO varchar 100 Tipo de transacción, por ejemplo: "cargo".
transaccion_inicio NO varchar 20 Fecha y hora del inicio de la transacción. Ejemplo: "2019-11-15T17:39:44-"
transaccion_fin NO varchar 20 Fecha y hora del final de la transacción. Ejemplo: "2019-11-15T17:39:44-"
transaccion_tipo_tar NO varchar 100 Tipo de tarjeta utilizada en la transacción. Ejemplos: "Master Card", "American Express", "Visa", "Etc.".
transaccion_met_pago NO varchar 50 Tipo de tarjeta utilizada para el pago. Solo acepta dos opciones:
1.- "credit"
2.- "debit"
id_prod = array() SI int 10 Arreglo de id del producto vendidos en el pedido. El id del producto debe ser previamente vinculado desde el modulo de catalogo. Ejemplo: "id_prod = array(1, 2, 3)".
nombre_pro = array() SI varchar 100 Arreglo de los nombres de productos vendidos en el pedido. Ejemplo: "nombre_pro = array("Reloj Digital", "Llavero de globo", "...")".
modelo_pro = array() SI varchar 50 Arreglo de los modelos de productos vendidos en el pedido. Ejemplo: "modelo_pro = array("Led", "Metal", "...")".
descripcion_pro = array() SI longtext   Arreglo de las descripciones de productos vendidos en el pedido. Ejemplo: "descripcion_pro = array("Reloj digital led acabado mate", "Llavero ...", "...")".
clave_pro_servicio = array() NO varchar 8 Arreglo de las claves de producto o servicio (SAT) vendidos en el pedido. Ejemplo: "clave_pro_servicio = array("54111500", "31162306", "")".
clave_unidad_pro = array() NO varchar 3 Arreglo de las claves de unidad del producto (SAT) vendidos en el pedido. Ejemplo: "clave_unidad_pro = array("H87", "H87", "")".
unidad_medida_pro = array() NO varchar 20 Arreglo de las unidades de medida del producto vendidos en el pedido. Ejemplo: "unidad_medida_pro = array("Pieza", "PIEZA", "")".
cantidad_pro = array() SI double   Arreglo de las cantidades del producto vendidos en el pedido. Ejemplo: "cantidad_pro = array(2, 5, 1)".
precio_uni_pro = array() SI double   Arreglo de los precios unitarios del producto vendidos en el pedido. Ejemplo: "precio_uni_pro = array(55.56, 10.00, 50)".
porc_mas_menos_pro = array() NO float   Arreglo de los porcentajes de descuento o aumento en el precio del producto vendidos en el pedido. Ejemplo descuento: "porc_mas_menos_pro = array(-10, -15, -50)". Ejemplo aumento: "porc_mas_menos_pro = array(10, 15, 50)".
importe_pro = array() SI double   Arreglo de los importes del producto vendidos en el pedido. Ejemplo: "importe_pro = array(111.12, 50, 50)".

 

Ejemplo de la petición API, método POST:

 {
	"usuario_key": "26c56cce490f3524e34a77b8688f7e2d3a9417419ff6889ccd",
	"fecha_emision": "2021/06/10",
	"id_cliente": "2",
	"nombre_cli": "Pedro Juarez",
	"area_cli": "jefe",
	"manejo_iva": "SI",
	"iva_valor": "16",
	"moneda": "1",
	"subtotal": "1237.47",
	"subtotal2": "1237.47",
	"iva": "197.9952‬",
	"total": "1435.4652",
	"anticipo": "1435.4652",
	"resta": "0",
	"estatus_pago": "Pagado",
	"referencia": "API",
	"transaccion_autorizacion": "801585",
	"transaccion_tipo": "charge",
	"transaccion_inicio": "2021-11-20T10:57:08-",
	"transaccion_fin": "2021-11-20T10:57:08-",
	"transaccion_tipo_tar": "visa",
	"transaccion_met_pago": "credit",
	"id_prod": array(
		[0] => "179",
		[1] => "180"
	),
	"nombre_pro":  array(
		[0] => "Training Pads Guardian 21 X 21 120CT 25G",
		[1] => "Training Pads Guardian 30 X 21 50CT"
	),
	"modelo_pro": array(
		[0] => "Training Pads Guardian 21 X 21 120CT 25G",
		[1] => "Training Pads Guardian 30 X 21 50CT"
	),
	"descripcion_pro": array(
		[0] => "",
		[1] = ""
	),
	"cantidad_pro": array(
		[0] => "2",
		[1] => "1"
	),
	"precio_uni_pro": array(
		[0] => "453.8625",
		[1] => "329.745"
	),
	"importe_pro": array(
		[0] => "907.725"
		[1] => "329.745"
	)
}
			    

- Tabla de campos Response:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
error SI bool   Indica si existe un error en la ejecución. Si el valor es true existe un error.
message SI varchar   Describe los detalles de la ejecución. Aqui se pueden mostrar los detalles de los errores o los mensajes de ejecución correcta.
status SI int   Muestra el estatus de la ejecución, devuelve un estatus "201" si todo es correcto, de lo contrario puede devolver un estatus "400" o "401".

 

Ejemplo de la respuesta :

Pedido correcto

  {
	"error":false,
	"message":"Pedido guardado correctamente.",
	"status":201
  }
			    

Pedido incorrecto

  {
"error":true,
"message":"Campo(s) usuario_key falta(n) o esta(n) vacio(s)",
"status":400
  }
			    

Descripción

A continuación se describen los pasos a seguir para implementar la API de forma correcta. Siga a detalle cada paso, si presenta algun problema comuniquese con nosotros.

Métodos de Interacción

1.- Vincular Productos

A continuación se muestran los pasos para vincular un producto del sistema AControl con un producto de otro sitio.

Dentro de los modulos de Catalogo y Inventario se agrego una sección llamada API, tanto en agregar, editar y ver. En esta sección se deberá agregar en el campo ID Sitio el id del producto que tienen el su sitio. De esta forma se pueden vincular los productos con el sistema AControl a la hora de consumir la API.

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
ID Sitio SI int 11 Id del cliente en el sitio.

Una vez vinculado tu producto puedes enviar este id como id de producto utilizando la API para insertar un pedido y el sistema lo vinculara para descontar de inventario en caso de ser entregado o poner en pendiente por surtir.

*En caso de alguna duda comuniquese con nosotros.

2.- Listar Productos

URL

URL base para consumir la API.

 https://cloud.acontrol.net/restapi/v1

Método URL
POST /lista_productos

HEADERS AUTHORIZATION*

Para la implementación de cualquier método deben implementar el header de autorización.

Key Value
X-Authorization e06952e347066213419ab45a15e37fb45c91f614
  array(
    "content-type: application/x-www-form-urlencoded",
    "X-Authorization: e06952e347066213419ab45a15e37fb45c91f614"
  );

Ejemplo PHP:

  CURLOPT_URL => "https://cloud.acontrol.net/restapi/v1/lista_productos"
  CURLOPT_CUSTOMREQUEST => "POST"

- Establecer cabeceras:

  CURLOPT_HTTPHEADER => array(
    "content-type: application/x-www-form-urlencoded",
    "X-Authorization: e06952e347066213419ab45a15e37fb45c91f614"
  );

*NOTA: Es muy importante establecer las cabeceras, sin ellas no se permitira el consumo de la API.

- Campos de la petición:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
usuario_key SI varchar (alfanumérico sin espacios) 50 Llave del usuario.

 

Ejemplo de la petición API, método POST:

 {
	"usuario_key": "26c56cce490f3524e34a77b8688f7e2d3a9417419ff6889ccd" //Llave de ejemplo
 }
			    

- Tabla de campos Response:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
error SI bool   Indica si existe un error en la ejecución. Si el valor es true existe un error.
message SI varchar   Describe los detalles de la ejecución. Aqui se pueden mostrar los detalles de los errores o los mensajes de ejecución correcta.
productos SI objetc   Muestra la lista de productos .
status SI int   Muestra el estatus de la ejecución, devuelve un estatus "201" si todo es correcto, de lo contrario puede devolver un estatus "400" o "401".

 

Ejemplo de la respuesta :

Productos listados

  {
    "error": false,
    "message": "Productos listados correctamente.",
    "productos": [
        {
            "id": "1",
            "nombre": "Phantom 3 Standard",
            "imagen": "phantom3-standar.fw_.png",
            "descripcion": "CONTENIDO         1 Control
	            1 Cargador       2 Juegos de hélices       
	            1 Batería       1 Clip para sostener el 
	            celular       1 Cable USB       1 Micro 
	            SD de 8 GBple Description             
	            CÁMARA  Video: 2.7k/2704 x 1520p 
	            24/25/30       Foto: 12 Mpx             
	            AERONAVE         Autonomía 
	            (tiempo de vuelo): 12-15 min       
	            Tiempo de carga: 40 min promedio       
	            Alcance en RC: 1 km      
	            Velocidad máxima: 16 m/s       
	            Velocidad max. ascenso: 5 m/s       
	            Velocidad max. descenso: 3 m/s       
	            Altitud sobre nivel del mar: 6,000 m             
	            GPS Y GIMBAL         Hover       
	            Vuelo Automático       
	            Follow Me       
	            Punto de interés       
	            Giroestabilización en 3 ejes",
            "modelo": "",
            "categoria": "1",
            "codigo": "PS123",
            "marca": "",
            "unidad_medida": "Pieza",
            "contenido": "0",
            "sub_unidad_medida": "",
            "c_ClaveProdServ": "",
            "c_ClaveUnidad": "",
            "moneda_compra": "1",
            "precio_comp": "0",
            "descuento_comp": "0",
            "costo_comp": "0",
            "iva_comp_vent": "0",
            "precio_lista": "12400",
            "porcentaje_lista": "0",
            "precio_publico": "12400",
            "porcentaje_publico": "0",
            "precio_mayoreo": "12400",
            "porcentaje_mayoreo": "0",
            "precio4": "0",
            "porcentaje_mas4": "0",
            "precio5": "0",
            "porcentaje_mas5": "0"
        },
        {
            "id": "2",
            "nombre": "SPARK",
            "imagen": "spark.fw_.png",
            "descripcion": "INCLUYE         1 Drone Spar
            	k       3 Pares 
	            de hélices       1 Batería       
	            1 Cargador       
	            1 Cable micro USB       
	            1 Caja de almacenamiento             
	  		AERONAVE         
	  		Anatomía (tiempo de vuelo): 9 min.       
	            Tiempo de carga: 60 min promedio       
	            Alcance en RC: 2 km.       
	            Velocidad máxima: 50 km/h (31 mph) en 
	            modo Sport sin viento       
	           Velocidad max. ascenso: 3 m/s (9.8 pies/s) 
	            en modo Sport 
	            sin viento       
	           Velocidad max. descenso: 3 m/s (9.8 pies/s) 
	            en modo Aterrizaje Automático       
	            Altitud sobre nivel del mar: 4,000 m             
	            CÁMARA         Video: FHD: 1920 × 1080 
	            30p       Foto: 3968 × 2976             
	            GPS Y GIMBAL         
	            Hover       
	            QuickShot       
	            ActiveTrack       
	            TapFly      
	             Giroestabilización en 2 ejes",
            "modelo": "DR-SPK",
            "categoria": "1",
            "codigo": "",
            "marca": "",
            "unidad_medida": "",
            "contenido": "0",
            "sub_unidad_medida": "",
            "c_ClaveProdServ": "",
            "c_ClaveUnidad": "",
            "moneda_compra": "2",
            "precio_comp": "5000",
            "descuento_comp": "0",
            "costo_comp": "5000",
            "iva_comp_vent": "0",
            "precio_lista": "7500",
            "porcentaje_lista": "50",
            "precio_publico": "7000",
            "porcentaje_publico": "40",
            "precio_mayoreo": "6500",
            "porcentaje_mayoreo": "30",
            "precio4": "0",
            "porcentaje_mas4": "0",
            "precio5": "0",
            "porcentaje_mas5": "0"
        },
        {
            "id": "3",
            "nombre": "MAVIC PRO",
            "imagen": "venta-de-drones-mavicPro.jpg",
            "descripcion": "CONTENIDO         Accordion 
            	Sa 1 Drone Mavic       
	            1 Control       
	            3 Pares de hélices       
	            1 Cubierta para Gimbal       
	            1 Cargador       
	            1 Micro SD 16 de GB       
	            1 Batería       1 Cable 
	            para iPhone       
	            1 Cable para Androidmple Description             
	            AERONAVE        
	             Autonomía (tiempo de vuelo): 15-18 min       
	            Tiempo de carga: 40 min promedio       
	            Alcance en RC: 5 km       
	            Velocidad máxima: 20 m/s       
	            Velocidad max. ascenso: 5 m/s       
	            Velocidad max. descenso: 3 m/s       
	            Altitud sobre nivel del mar: 6,000 m             
	            CÁMARA         Video: 4k/4096 x 2160p 
	            24/25, 3840 x 2160p 24/25/30       
	           	Video en cámara lenta: 1920 x 1080p 
	           	120 fps       
	            Foto: 12 Mpx             
	            GPS Y GIMBAL         
	            Hover       
	            Vuelo automático       
	            Follow objects      
	            Punto de interés       
	            Giroestabilización en 3 ejes",
            "modelo": "DR-MAP",
            "categoria": "1",
            "codigo": "141413",
            "marca": "",
            "unidad_medida": "Pza.",
            "contenido": "0",
            "sub_unidad_medida": "",
            "c_ClaveProdServ": "10161803",
            "c_ClaveUnidad": "DMO",
            "moneda_compra": "1",
            "precio_comp": "0",
            "descuento_comp": "0",
            "costo_comp": "0",
            "iva_comp_vent": "0",
            "precio_lista": "24700",
            "porcentaje_lista": "0",
            "precio_publico": "24700",
            "porcentaje_publico": "0",
            "precio_mayoreo": "24700",
            "porcentaje_mayoreo": "0",
            "precio4": "0",
            "porcentaje_mas4": "0",
            "precio5": "0",
            "porcentaje_mas5": "0"
        },
        {
            "id": "4",
            "nombre": "Phantom 4 PRO",
            "imagen": "phantom-4-pro.fw_.png",
            "descripcion": "CONTENIDO         Drone Phantom
            	 4 PRO       1 Control       
	            1 Cargador       
	            2 Juegos de hélices       
	            1 Batería       
	            1 Clip para sostener el celular       
	            1 Cable USB       
	            1 Micro SD de 16 GB       
	            CÁMARA         Video: 4k/4096 x 
	            2160p 24/25,
	            3840x2160p 24/25/30       
	            Video en Cámara Lenta: 1920 x 1080p 
	            120 fps       
	            Foto: 20 Mpx       AERONAVE         
	            Autonomía (tiempo de vuelo): 22 min       
	            Tiempo de carga: 40 min promedio       
	            Alcance en RC: 7 km  Velocidad máxima: 
	            20 m/s       
	            Velocidad max. ascenso: 5 m/s       
	            Velocidad max. descenso: 3 m/s       
	            Altitud sobre nivel del mar: 6,000 m       
	            GPS Y GIMBAL         
	            Hover       
	            Vuelo Automático       
	            Follow Objects       
	            Punto de interés       
	            Active Track       
	            Giroestabilización en 3 ejes",
            "modelo": "DR-P4P",
            "categoria": "1",
            "codigo": null,
            "marca": "",
            "unidad_medida": "",
            "contenido": "0",
            "sub_unidad_medida": "",
            "c_ClaveProdServ": "",
            "c_ClaveUnidad": "",
            "moneda_compra": "1",
            "precio_comp": "0",
            "descuento_comp": "0",
            "costo_comp": "0",
            "iva_comp_vent": "0",
            "precio_lista": "38900",
            "porcentaje_lista": "0",
            "precio_publico": "38900",
            "porcentaje_publico": "0",
            "precio_mayoreo": "38900",
            "porcentaje_mayoreo": "0",
            "precio4": "0",
            "porcentaje_mas4": "0",
            "precio5": "0",
            "porcentaje_mas5": "0"
        }
    ],
    "status": 201
  }
			    

Listado de Productos incorrecto

  {
"error":true,
"message":"Campo(s) usuario_key falta(n) o esta(n) vacio(s)",
"status":400
  }
			    

3.- Listar Producto por ID

URL

URL base para consumir la API.

 https://cloud.acontrol.net/restapi/v1

Método URL
GET /producto

HEADERS AUTHORIZATION*

Para la implementación de cualquier método deben implementar el header de autorización.

Key Value
X-Authorization e06952e347066213419ab45a15e37fb45c91f614
  array(
    "content-type: application/x-www-form-urlencoded",
    "X-Authorization: e06952e347066213419ab45a15e37fb45c91f614"
  );

Ejemplo PHP:

  CURLOPT_URL => "https://cloud.acontrol.net/restapi/v1/producto?usuario_key=26c56cce490f3524e34a77b8688f7e2d3a9417419ff6889ccd&id_producto=2"
  CURLOPT_CUSTOMREQUEST => "GET"

- Establecer cabeceras:

  CURLOPT_HTTPHEADER => array(
    "content-type: application/x-www-form-urlencoded",
    "X-Authorization: e06952e347066213419ab45a15e37fb45c91f614"
  );

*NOTA: Es muy importante establecer las cabeceras, sin ellas no se permitira el consumo de la API.

- Campos de la petición:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
usuario_key SI varchar (alfanumérico sin espacios) 50 Llave del usuario.
id_producto SI int 11 Id del producto.

 

Ejemplo de la petición API, método GET:

 url => https://cloud.acontrol.net/restapi/v1/producto?usuario_key=26c56cce490f3524e34a77b8688f7e2d3a9417419ff6889ccd&id_producto=22
			    

- Tabla de campos Response:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
error SI bool   Indica si existe un error en la ejecución. Si el valor es true existe un error.
message SI varchar   Describe los detalles de la ejecución. Aqui se pueden mostrar los detalles de los errores o los mensajes de ejecución correcta.
producto SI objetc   Muestra los datos del producto con el id especificado.
status SI int   Muestra el estatus de la ejecución, devuelve un estatus "201" si todo es correcto, de lo contrario puede devolver un estatus "400" o "401".

 

Ejemplo de la respuesta :

Producto listados

  {
    "error": false,
    "message": "Producto listado correctamente.",
    "producto": [
        {
            "id": "22",
            "nombre": "Cámara Canon PRO XC15 Videocámara Compacta",
            "imagen": "camara-canon2.png",
            "descripcion": "Características Megapíxeles: 13.36. 
            Zoom ratio: 10 x 24.1-241 milímetros (35 milímetros 
            equivalentes por foto) 27.3-273 milímetros 
            (35 milímetros equivalentes para película)            
            Características Extras: Formato de archivo: 
            MXF- compresión: MPEG-4 AVC/H.264 pulgadas            
            Detalles Sensor de imagen: 1.0-inch (16.0 milímetros diagonal)            
            Estabilizador: IS de imagen óptico            
            Megapixeles: 13.3 megapíxeles            
            Media de grabación: CFast para 4k, tarjeta SD para 
            video HD, fotos (jpg), menús y más.           
            Compatibilidad: Wi-Fi            
            Tipo de Pantalla LCD: 7.66 centímetros diagonal",
            "modelo": "CA-CPRO",
            "categoria": "3",
            "codigo": null,
            "marca": "",
            "unidad_medida": "",
            "contenido": "0",
            "sub_unidad_medida": "",
            "c_ClaveProdServ": "",
            "c_ClaveUnidad": "",
            "moneda_compra": "1",
            "precio_comp": "0",
            "descuento_comp": "0",
            "costo_comp": "0",
            "iva_comp_vent": "0",
            "precio_lista": "47600",
            "porcentaje_lista": "0",
            "precio_publico": "47600",
            "porcentaje_publico": "0",
            "precio_mayoreo": "47600",
            "porcentaje_mayoreo": "0",
            "precio4": "0",
            "porcentaje_mas4": "0",
            "precio5": "0",
            "porcentaje_mas5": "0"
        }
    ],
    "status": 201
  }

Listado de Producto incorrecto

  {
"error":true,
"message":"Campo(s) usuario_key falta(n) o esta(n) vacio(s)",
"status":400
  }
			    

4.- Obtener Imagen del Producto

A continuación se muestra la ruta para poder visualizar la imagen del producto y poder incluirla en donde lo requieran.

 

URL IMAGEN
https://cloud.acontrol.net/usuarios/(RFC Usuario AControl)/catalogo/ "ejemplo_nombre_imagen.png"
Ejemplo
https://cloud.acontrol.net/usuarios/(RFC Usuario AControl)/catalogo/ejemplo_nombre_imagen.png

 

Descripción

A continuación se describen los pasos a seguir para implementar la API de forma correcta. Siga a detalle cada paso, si presenta algun problema comuniquese con nosotros.

Métodos de Interacción

1.- Crear un Cliente

Método URL
POST /guardar_cliente

HEADERS AUTHORIZATION*

Para la implementación de cualquier método deben implementar el header de autorización.

Key Value
X-Authorization e06952e347066213419ab45a15e37fb45c91f614
  array(
    "content-type: application/x-www-form-urlencoded",
    "X-Authorization: e06952e347066213419ab45a15e37fb45c91f614"
  );

Ejemplo PHP:

  CURLOPT_URL => "https://cloud.acontrol.net/restapi/v1/guardar_cliente"
  CURLOPT_CUSTOMREQUEST => "POST"

- Establecer cabeceras:

  CURLOPT_HTTPHEADER => array(
    "content-type: application/x-www-form-urlencoded",
    "X-Authorization: e06952e347066213419ab45a15e37fb45c91f614"
  );

*NOTA: Es muy importante establecer las cabeceras, sin ellas no se permitira el consumo de la API.

- Campos de la petición:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
usuario_key SI varchar (alfanumérico sin espacios) 50 Llave del usuario.
nombre_razon_social SI varchar 100 Nombre o razón social del cliente, en el sistema se encuentra como empresa.
numero_alternativo NO varchar 20 Número alternativo para control interno.
nombre_comercial NO varchar 100 Nombre comercial del cliente.
nombre_contacto NO varchar 50 Nombre de contacto del cliente.
cargo_contacto NO varchar 30 Cargo o departamento del contacto.
cobranza_contacto NO varchar 50 Contacto para cobranza.
calle NO varchar 100 Calle de la dirección del cliente.
numExt NO varchar 45 Número exterior de la dirección del cliente.
numInt NO varchar 45 Número interior de la dirección del cliente.
colonia NO varchar 50 Colonia donde se ubicado el cliente.
municipio NO varchar 50 Municipio donde se ubica el cliente.
ciudad NO varchar 50 Ciudad donde se ubica el cliente.
estado NO varchar 50 Estado donde se ubica el cliente.
codigoPostal NO varchar 10 Código postal donde se ubica el cliente.
pais NO varchar 3 Páis donde se encuentra el cliente, se toman unicamente tres digítos.
rfc NO varchar 25 Registro Federal del Contribuyente del cliente.
email NO varchar 50 Correo electrónico del cliente para contacto.
telefono NO varchar 100 Teléfono de contacto a 10 digítos
celular NO varchar 100 Número de teléfono celular a 10 digítos, puede incluir lada.
nextel NO varchar 100 Nextel del cliente.

 

Ejemplo de la petición API, método POST:

 {
    "usuario_key": "26c56cce490f3524e34a77b8688f7e2d3a9417419ff6889ccd",
    "nombre_razon_social": "TECMAC MÉXICO",
    "numero_alternativo": "121",
    "nombre_comercial": "Tecmac Maquinarias",
    "nombre_contacto": "Luis Andres Muños",
    "cargo_contacto": "Administración",
    "cobranza_contacto": "",
    "calle": "Diamante",
    "numExt": "7845",
    "numInt": "",
    "colonia": "Paraiso",
    "ciudad": "Puebla",
    "estado": "Puebla",
    "codigoPostal": "74859",
    "pais": "MEX",
    "rfc": "MAMM881026-9PMX",
    "email": "luis_muños@tecmac.com.mx",
    "telefono": "2227894875",
    "celular": "5578010254",
    "nextel": ""
  }
			    

- Tabla de campos Response:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
error SI bool   Indica si existe un error en la ejecución. Si el valor es true existe un error.
message SI varchar   Describe los detalles de la ejecución. Aqui se pueden mostrar los detalles de los errores o los mensajes de ejecución correcta.
data NO array   Regresa todos los datos que se dieron de alta del cliente.
status SI int   Muestra el estatus de la ejecución, devuelve un estatus "201" si todo es correcto, de lo contrario puede devolver un estatus "400" o "401".

 

Ejemplo de la respuesta :

Cliente correcto

  {
    "error": false,
    "message": "Cliente guardado correctamente.",
    "data": {
        "id": "98",
        "empresa": "TECMAC MÉXICO",
        "rfc": "MAMM881026-9PMX",
        "nombre_comercial": "Tecmac Maquinarias",
        "numero_alternativo": "121",
        "calle": "Diamante",
        "numeroExterior": "7845",
        "numeroInterior": "",
        "colonia": "Paraiso",
        "localidad": "",
        "municipio": "",
        "estado": "Puebla",
        "codigoPostal": "74859",
        "pais": "MEX",
        "nombre_contacto": "",
        "cargo": "",
        "cobranza": "",
        "telefono": "2227894875",
        "ext": "",
        "celular": "5578010254",
        "nextel": "",
        "email": "",
        "registro": "2020/07/31"
    },
    "status": 201
  }
			    

Cliente incorrecto

  {
    "error": true,
    "message": "Campo(s) usuario_key, nombre_razon_social falta(n) o 
    	esta(n) vacio(s)",
    "status": 400
  }
			    

2.- Vincular Clientes

Dentro del modulo de Clientes se agrego una sección llamada Datos para API, tanto en agregar, editar y ver. En esta sección se deberá agregar en el campo ID Sitio, el id que tiene el cliente en su sitio. De esta forma se pueden vincular los clientes con el sistema AControl a la hora de consumir la API.

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
ID Sitio SI int 11 Id del cliente en el sitio.

Una vez vinculado el cliente puedes enviar este id como id de cliente en caso de tenerlo registrado utilizando la API para insertar un pedido y el sistema lo vinculara.

*En caso de alguna duda comuniquese con nosotros.

3.- Listar Clientes

URL

URL base para consumir la API.

 https://cloud.acontrol.net/restapi/v1

Método URL
POST /lista_clientes

HEADERS AUTHORIZATION*

Para la implementación de cualquier método deben implementar el header de autorización.

Key Value
X-Authorization e06952e347066213419ab45a15e37fb45c91f614
  array(
    "content-type: application/x-www-form-urlencoded",
    "X-Authorization: e06952e347066213419ab45a15e37fb45c91f614"
  );

Ejemplo PHP:

  CURLOPT_URL => "https://cloud.acontrol.net/restapi/v1/lista_clientes"
  CURLOPT_CUSTOMREQUEST => "POST"

- Establecer cabeceras:

  CURLOPT_HTTPHEADER => array(
    "content-type: application/x-www-form-urlencoded",
    "X-Authorization: e06952e347066213419ab45a15e37fb45c91f614"
  );

*NOTA: Es muy importante establecer las cabeceras, sin ellas no se permitira el consumo de la API.

- Campos de la petición:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
usuario_key SI varchar (alfanumérico sin espacios) 50 Llave del usuario.

 

Ejemplo de la petición API, método POST:

 {
	"usuario_key": "26c56cce490f3524e34a77b8688f7e2d3a9417419ff6889ccd" //Llave de ejemplo
 }
			    

- Tabla de campos Response:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
error SI bool   Indica si existe un error en la ejecución. Si el valor es true existe un error.
message SI varchar   Describe los detalles de la ejecución. Aqui se pueden mostrar los detalles de los errores o los mensajes de ejecución correcta.
clientes SI objetc   Muestra la lista de clientes .
status SI int   Muestra el estatus de la ejecución, devuelve un estatus "201" si todo es correcto, de lo contrario puede devolver un estatus "400" o "401".

 

Ejemplo de la respuesta :

Clientes listados

  {
    "error": false,
    "message": "Clientes listados correctamente.",
    "clientes": [
        {
            "id": "73",
            "empresa": "ACONTROL",
            "rfc": "",
            "nombre_comercial": "",
            "numero_alternativo": "",
            "calle": "",
            "numeroExterior": "",
            "numeroInterior": "",
            "colonia": "",
            "localidad": "",
            "municipio": "",
            "estado": "",
            "codigoPostal": "",
            "pais": "México",
            "nombre_contacto": "CRISTIAN DAVILA",
            "cargo": "",
            "cobranza": "",
            "telefono": "2227117600",
            "ext": "",
            "celular": "",
            "nextel": "",
            "email": "MAGGIE@ACONTROL.COM.MX",
            "registro": "2020/02/07"
        },
        {
            "id": "46",
            "empresa": "ALONSO MUÑOS",
            "rfc": "",
            "nombre_comercial": "Muños Alonso",
            "numero_alternativo": "12",
            "calle": "",
            "numeroExterior": "",
            "numeroInterior": "",
            "colonia": "",
            "localidad": "",
            "municipio": "",
            "estado": "",
            "codigoPostal": "",
            "pais": "México",
            "nombre_contacto": "Alonso Muñoz",
            "cargo": "",
            "cobranza": "",
            "telefono": "",
            "ext": "",
            "celular": "",
            "nextel": "",
            "email": "",
            "registro": "2019/08/18"
        },
        {
            "id": "87",
            "empresa": "ALTOS ENERGETICOS MEXICANOS S.A. DE C.V.",
            "rfc": "AEM160511LMA",
            "nombre_comercial": "",
            "numero_alternativo": null,
            "calle": "",
            "numeroExterior": "",
            "numeroInterior": "",
            "colonia": "",
            "localidad": "",
            "municipio": "",
            "estado": "",
            "codigoPostal": "",
            "pais": null,
            "nombre_contacto": "",
            "cargo": "",
            "cobranza": "",
            "telefono": "",
            "ext": "",
            "celular": "",
            "nextel": "",
            "email": "",
            "registro": ""
        },
        {
            "id": "48",
            "empresa": "AMELIA MUÑOS",
            "rfc": "",
            "nombre_comercial": "",
            "numero_alternativo": "Admin",
            "calle": "",
            "numeroExterior": "",
            "numeroInterior": "",
            "colonia": "",
            "localidad": "",
            "municipio": "",
            "estado": "",
            "codigoPostal": "",
            "pais": "México",
            "nombre_contacto": "",
            "cargo": "",
            "cobranza": "",
            "telefono": "",
            "ext": "",
            "celular": "",
            "nextel": "",
            "email": "",
            "registro": "2019/08/18"
        }
    ],
    "status": 201
  }
			    

Listado de Clientes incorrecto

  {
"error":true,
"message":"Campo(s) usuario_key falta(n) o esta(n) vacio(s)",
"status":400
  }
			    

4.- Listar Cliente por ID o por RFC

URL

URL base para consumir la API.

 https://cloud.acontrol.net/restapi/v1

Método URL
GET /cliente

HEADERS AUTHORIZATION*

Para la implementación de cualquier método deben implementar el header de autorización.

Key Value
X-Authorization e06952e347066213419ab45a15e37fb45c91f614
  array(
    "content-type: application/x-www-form-urlencoded",
    "X-Authorization: e06952e347066213419ab45a15e37fb45c91f614"
  );

Ejemplo PHP:

  CURLOPT_URL => "https://cloud.acontrol.net/restapi/v1/cliente?usuario_key=26c56cce490f3524e34a77b8688f7e2d3a9417419ff6889ccd&id_cliente=2||&rfcAAA000000"
  CURLOPT_CUSTOMREQUEST => "GET"

- Establecer cabeceras:

  CURLOPT_HTTPHEADER => array(
    "content-type: application/x-www-form-urlencoded",
    "X-Authorization: e06952e347066213419ab45a15e37fb45c91f614"
  );

*NOTA: Es muy importante establecer las cabeceras, sin ellas no se permitira el consumo de la API.

- Campos de la petición:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
usuario_key SI varchar (alfanumérico sin espacios) 50 Llave del usuario.
id_cliente NO int 11 Id del cliente, este camnpo es requerido si no se ingresa el rfc del cliente.
rfc NO varchar 25 RFC del cliente, este campo es requerido si no se especifica el id del cliente.

 

Ejemplo de la petición API, método GET:

 url => https://cloud.acontrol.net/restapi/v1/cliente?usuario_key=26c56cce490f3524e34a77b8688f7e2d3a9417419ff6889ccd&id_cliente=87
			    

- Tabla de campos Response:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
error SI bool   Indica si existe un error en la ejecución. Si el valor es true existe un error.
message SI varchar   Describe los detalles de la ejecución. Aqui se pueden mostrar los detalles de los errores o los mensajes de ejecución correcta.
cliente SI objetc   Muestra los datos del cliente con el id o rfc especificado.
status SI int   Muestra el estatus de la ejecución, devuelve un estatus "201" si todo es correcto, de lo contrario puede devolver un estatus "400" o "401".

 

Ejemplo de la respuesta :

Cliente listado

  {
    "error": false,
    "message": "Cliente listado correctamente.",
    "cliente": [
        {
            "id": "87",
            "empresa": "ALTOS ENERGETICOS MEXICANOS S.A. DE C.V.",
            "rfc": "AEM160511LMA",
            "nombre_comercial": "",
            "numero_alternativo": null,
            "calle": "",
            "numeroExterior": "",
            "numeroInterior": "",
            "colonia": "",
            "localidad": "",
            "municipio": "",
            "estado": "",
            "codigoPostal": "",
            "pais": null,
            "nombre_contacto": "",
            "cargo": "",
            "cobranza": "",
            "telefono": "",
            "ext": "",
            "celular": "",
            "nextel": "",
            "email": "",
            "registro": ""
        }
    ],
    "status": 201
  }

Lista de Cliente incorrecto

  {
"error":true,
"message":"Campo(s) usuario_key falta(n) o esta(n) vacio(s)",
"status":400
  }
			    

Descripción

Las siguientes tablas son informativas acerca de valores aceptados por la API. Si presentan algun problema comuniquese con nosotros.

Listas de Valores

1.- Lista Paises

Valor API PAÍS
AFG Afganistán
ALB Albania
DEU Alemania
AND Andorra
AGO Angola
AIA Anguila
ATA Antártida
ATG Antigua y Barbuda
SAU Arabia Saudita
DZA Argelia
ARG Argentina
ARM Armenia
ABW Aruba
AUS Australia
AUT Austria
AZE Azerbaiyán
BHS Bahamas (las)
BGD Bangladés
BRB Barbados
BHR Baréin
BEL Bélgica
BLZ Belice
BEN Benín
BMU Bermudas
BLR Bielorrusia
BOL Bolivia, Estado Plurinacional de
BES Bonaire, San Eustaquio y Saba
BIH Bosnia y Herzegovina
BWA Botsuana
BRA Brasil
BRN Brunéi Darussalam
BGR Bulgaria
BFA Burkina Faso
BDI Burundi
BTN Bután
CPV Cabo Verde
KHM Camboya
CMR Camerún
CAN Canadá
QAT Catar
TCD Chad
CHL Chile
CHN China
CYP Chipre
COL Colombia
COM Comoras
COG Congo
COD Congo (la República Democrática del)
KOR Corea (la República de)
PRK Corea (la República Democrática Popular de)
CRI Costa Rica
CIV Côte d'Ivoire
HRV Croacia
CUB Cuba
CUW Curaçao
DNK Dinamarca
DMA Dominica
ECU Ecuador
EGY Egipto
SLV El Salvador
ARE Emiratos Árabes Unidos (Los)
ERI Eritrea
SVK Eslovaquia
SVN Eslovenia
ESP España
USA Estados Unidos (los)
EST Estonia
ETH Etiopía
PHL Filipinas (las)
FIN Finlandia
FJI Fiyi
FRA Francia
GAB Gabón
GMB Gambia (La)
GEO Georgia
SGS Georgia del sur y las islas sandwich del sur
GHA Ghana
GIB Gibraltar
GRD Granada
GRC Grecia
GRL Groenlandia
GLP Guadalupe
GUM Guam
GTM Guatemala
GUF Guayana Francesa
GGY Guernsey
GIN Guinea
GNQ Guinea Ecuatorial
GNB Guinea-Bisáu
GUY Guyana
HTI Haití
HND Honduras
HKG Hong Kong
HUN Hungría
IND India
IDN Indonesia
IRQ Irak
IRN Irán (la República Islámica de)
IRL Irlanda
BVT Isla Bouvet
IMN Isla de Man
CXR Isla de Navidad
HMD Isla Heard e Islas McDonald
NFK Isla Norfolk
ISL Islandia
ALA Islas Åland
CYM Islas Caimán (las)
CCK Islas Cocos (Keeling)
COK Islas Cook (las)
UMI Islas de Ultramar Menores de Estados Unidos (las)
FRO Islas Feroe (las)
FLK Islas Malvinas [Falkland] (las)
MNP Islas Marianas del Norte (las)
MHL Islas Marshall (las)
SLB Islas Salomón (las)
TCA Islas Turcas y Caicos (las)
VGB Islas Vírgenes (Británicas)
VIR Islas Vírgenes (EE.UU.)
ISR Israel
ITA Italia
JAM Jamaica
JPN Japón
JEY Jersey
JOR Jordania
KAZ Kazajistán
KEN Kenia
KGZ Kirguistán
KIR Kiribati
KWT Kuwait
LAO Lao, (la) República Democrática Popular
LSO Lesoto
LVA Letonia
LBN Líbano
LBR Liberia
LBY Libia
LIE Liechtenstein
LTU Lituania
LUX Luxemburgo
MAC Macao
MKD Macedonia (la antigua República Yugoslava de)
MDG Madagascar
MYS Malasia
MWI Malaui
MDV Maldivas
MLI Malí
MLT Malta
MAR Marruecos
MTQ Martinica
MUS Mauricio
MRT Mauritania
MYT Mayotte
MEX México
FSM Micronesia (los Estados Federados de)
MDA Moldavia (la República de)
MCO Mónaco
MNG Mongolia
MNE Montenegro
MSR Montserrat
MOZ Mozambique
MMR Myanmar
NAM Namibia
NRU Nauru
NPL Nepal
NIC Nicaragua
NER Níger (el)
NGA Nigeria
NIU Niue
NOR Noruega
NCL Nueva Caledonia
NZL Nueva Zelanda
OMN Omán
NLD Países Bajos (los)
ZZZ Países no declarados
PAK Pakistán
PLW Palaos
PSE Palestina, Estado de
PAN Panamá
PNG Papúa Nueva Guinea
PRY Paraguay
PER Perú
PCN Pitcairn
PYF Polinesia Francesa
POL Polonia
PRT Portugal
PRI Puerto Rico
GBR Reino Unido (el)
CAF República Centroafricana (la)
CZE República Checa (la)
DOM República Dominicana (la)
REU Reunión
RWA Ruanda
ROU Rumania
RUS Rusia, (la) Federación de
ESH Sahara Occidental
WSM Samoa
ASM Samoa Americana
BLM San Bartolomé
KNA San Cristóbal y Nieves
SMR San Marino
MAF San Martín (parte francesa)
SPM San Pedro y Miquelón
VCT San Vicente y las Granadinas
SHN Santa Helena, Ascensión y Tristán de Acuña
LCA Santa Lucía
VAT Santa Sede[Estado de la Ciudad del Vaticano] (la)
STP Santo Tomé y Príncipe
SEN Senegal
SRB Serbia
SYC Seychelles
SLE Sierra leona
SGP Singapur
SXM Sint Maarten (parte holandesa)
SYR Siria, (la) República Árabe
SOM Somalia
LKA Sri Lanka
SWZ Suazilandia
ZAF Sudáfrica
SDN Sudán (el)
SSD Sudán del Sur
SWE Suecia
CHE Suiza
SUR Surinam
SJM Svalbard y Jan Mayen
THA Tailandia
TWN Taiwán (Provincia de China)
TZA Tanzania, República Unida de
TJK Tayikistán
IOT Territorio Británico del Océano Índico (el)
ATF Territorios Australes Franceses (los)
TLS Timor-Leste
TGO Togo
TKL Tokelau
TON Tonga
TTO Trinidad y Tobago
TUN Túnez
TKM Turkmenistán
TUR Turquía
TUV Tuvalu
UKR Ucrania
UGA Uganda
URY Uruguay
UZB Uzbekistán
VUT Vanuatu
VEN Venezuela, República Bolivariana de
VNM Viet Nam
WLF Wallis y Futuna
YEM Yemen
DJI Yibuti
ZMB Zambia
ZWE Zimbabue

2.- Lista c_UsoCFDI

Valor API CFDI Descripción
G01 G01 - Adquisición de mercancias
D06 D06 - Aportaciones voluntarias al SAR.
I07 I07 - Comunicaciones satelitales
I06 I06 - Comunicaciones telefónicas
I01 I01 - Construcciones
I05 I05 - Dados, troqueles, moldes, matrices y herramental
D09 D09 - Depósitos en cuentas para el ahorro, primas que tengan como base planes de pensiones.
G02 G02 - Devoluciones, descuentos o bonificaciones
D04 D04 - Donativos.
I04 I04 - Equipo de computo y accesorios
I03 I03 - Equipo de transporte
D08 D08 - Gastos de transportación escolar obligatoria.
G03 G03 - Gastos en general
D03 D03 - Gastos funerales.
D02 D02 - Gastos médicos por incapacidad o discapacidad
D01 D01 - Honorarios médicos, dentales y gastos hospitalarios.
D05 D05 - Intereses reales efectivamente pagados por créditos hipotecarios (casa habitación).
I02 I02 - Mobilario y equipo de oficina por inversiones
I08 I08 - Otra maquinaria y equipo
D10 D10 - Pagos por servicios educativos (colegiaturas)
P01 P01 - Por definir
D07 D07 - Primas por seguros de gastos médicos.

3.- Lista Monedas


Valor API Moneda
1 Peso Méxicano (MXN)
2 Dólar estadounidense (USD)
3 Dólar canadiense (CAD)
4 Euro (EUR)
5 Libra esterlina (GBP)
6 Yen (JPY)
7 Yuan chino (CNY)

Descripción

A continuación se describen los pasos a seguir para implementar la API de forma correcta. Siga a detalle cada paso, si presenta algun problema comuniquese con nosotros.

Métodos de Interacción

URL

URL base para consumir la API.

 https://cloud.acontrol.net/restapi/v1

1.- Crear una cotización

Método URL
POST /guardar_cotizacion

Ejemplo PHP:

  CURLOPT_URL => "https://cloud.acontrol.net/restapi/v1/guardar_cotizacion"
  CURLOPT_CUSTOMREQUEST => "POST"

- Establecer cabeceras:

  CURLOPT_HTTPHEADER => array(
    "content-type: application/x-www-form-urlencoded",
    "X-Authorization: e06952e347066213419ab45a15e37fb45c91f614"
  );

*NOTA: Es muy importante establecer las cabeceras, sin ellas no se permitira el consumo de la API.

- Campos de la petición:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
usuario_key SI varchar (alfanumérico sin espacios) 50 Llave del usuario.
fecha_emision SI varchar 20 Fecha de creación en el formato año/mes/día.
folio_alt NO varchar 50 Folio alternativo.
vigencia SI varchar 20 Indica la duración de la cotización, por ejemplo: "2 días".
id_cliente NO int 10 Id del cliente de su sitio, para que este dato sea correcto se debe vincular previamente los clientes desde el modulo de clientes.
empresa_cli NO varchar 150 Nombre de la empresa a la que pertenece el cliente.
nombre_cli SI varchar 100 Nombre del cliente.
area_cli SI varchar 150 Nombre del área a la que pertenece el cliente.
calle_cliente NO varchar 300 Nombre de la calle. Este dato se define cuando no se ingresa un id del cliente.
numExt_cliente NO varchar 50 Número exterior del lugar donde se encuentra el cliente. Este dato se define cuando no se ingresa un id del cliente.
numInt_cliente NO varchar 50 Número interior del lugar donde se encuentra el cliente. Este dato se define cuando no se ingresa un id del cliente.
colonia_cliente NO varchar 300 Nombre de la colonia. Este dato se define cuando no se ingresa un id del cliente.
municipio_cliente NO varchar 300 Nombre del municipio. Este dato se define cuando no se ingresa un id del cliente.
estado_cliente NO varchar 300 Estado donde se ubica el cliente. Este dato se define cuando no se ingresa un id del cliente.
cp_cliente NO varchar 10 Código postal. Este dato se define cuando no se ingresa un id del cliente.
pais_cliente NO varchar 3 Páis donde se encuentra el cliente, se toman unicamente tres digítos. Este dato se define cuando no se ingresa un id del cliente.
rfc_cliente NO varchar 13 Registro Federal del Contribuyente asignado al cliente. Este dato se define cuando no se ingresa un id del cliente.
email_cliente NO varchar 100 Correo Electrónico del cliente. Este dato se define cuando no se ingresa un id del cliente.
telefono_cliente NO varchar 100 Teléfono de contacto. Este dato se define cuando no se ingresa un id del cliente.
manejo_iva SI varchar 2 Recibe unicamente dos valores:
1.- "SI"
2.- "NO"
iva_valor NO int 2 Se especifica este valor cuando la variable manejo_iva es "SI". Recibe un valor entero de dos dijitos, ejemplo: 16.
moneda SI int 1 La moneda en que se realiza la cotización.
valorCambio NO float   En caso de que la moneda sea mayor a 1 (Peso Mexicano), se debe ingresar el tipo de cambio de la moneda extrangera.
observaciones NO LONGTEXT   Observaciones o datos extras de la cotización.
subtotal SI double   Suma del importe de los productos sin iva.
porciento_desc NO double   Porcentaje del descuento a dos cifras sin punto decimal.
descuento NO double   Valor del descuento aplicado al subtotal.
subtotal2 SI double   Es el resultado del subtotal menos el descuento aplicado.
iva NO double   Monto acumulado del impuesto I.V.A.
total SI double   Es el resultado de la suma del subtotal2 más el impuesto I.V.A.
referencia NO varchar 50 Referencia de la cotización.
id_prod = array() SI int 10 Arreglo de id del producto vendidos en la cotización. El id del producto debe ser previamente vinculado desde el modulo de catalogo. Ejemplo: "id_prod = array(1, 2, 3)".
nombre_pro = array() SI varchar 100 Arreglo de los nombres de productos vendidos en la cotización. Ejemplo: "nombre_pro = array("Reloj Digital", "Llavero de globo", "...")".
modelo_pro = array() SI varchar 50 Arreglo de los modelos de productos vendidos en la cotización. Ejemplo: "modelo_pro = array("Led", "Metal", "...")".
descripcion_pro = array() SI longtext   Arreglo de las descripciones de productos vendidos en la cotización. Ejemplo: "descripcion_pro = array("Reloj digital led acabado mate", "Llavero ...", "...")".
cantidad_pro = array() SI double   Arreglo de las cantidades del producto vendidos en la cotización. Ejemplo: "cantidad_pro = array(2, 5, 1)".
precio_uni_pro = array() SI double   Arreglo de los precios unitarios del producto vendidos en la cotización. Ejemplo: "precio_uni_pro = array(55.56, 10.00, 50)".
importe_pro = array() SI double   Arreglo de los importes del producto vendidos en la cotización. Ejemplo: "importe_pro = array(111.12, 50, 50)".

 

Ejemplo de la petición API, método POST:

 {
	"usuario_key" => "6cfc9df3f500cd9322b54d12ae229c4782ee9eed38e4a9a859",
  	"fecha_emision" => "",
  	"folio_alt" => "",
  	"vigencia" => "15 días apartir de 23 de julio",
  	"empresa_cli" => "WorkHome",
  	"nombre" => "Juan Antonio Ramirez",
  	"area" => "Ventas",
  	"calle_cliente" => "Blvd. 5 de Mayo",
  	"numExt_cliente" => "784",
  	"numInt_cliente" => "",
  	"colonia_cliente" => "Unidad Juarez",
  	"municipio_cliente" => "Libres",
  	"estado_cliente" => "Puebla",
  	"cp_cliente" => "78458",
  	"pais_cliente" => "MEX",
  	"rfc_cliente" => "",
  	"email_cliente" => "antoni_2020@workhome.com",
  	"telefono_cliente" => "2256874501",
  	"manejo_iva" => "SI",
  	"iva_valor" => "16",
  	"moneda" => "1",
  	"valorCambio" => "",
  	"observaciones" => "Cotización pendiente",
  	"subtotal" => "5,334.75",
  	"porcentaje_desc" => "",
  	"descuento" => "",
  	"subtotal2" => "5,334.75",
  	"iva" => "853.56",
  	"total" => "6,188.31",
  	"referencia" => "Cotización por medio de API",
  	"id_producto[0]" => "3",
  	"nombre_pro[0]" => "Guia 1",
  	"modelo_pro[0]" => "2020",
  	"descripcion_pro[0]" => "Libro Guia 1 edición Trillas",
  	"cantidad_pro[0]" => "10",
  	"precio_uni_pro[0]" => "398.475",
  	"importe_pro[0]" => "3,984.75",
  	"id_producto[1]" => "2",
  	"nombre_pro[1]" => "Guia 2",
  	"modelo_pro[1]" => "2020",
  	"descripcion_pro[1]" => "Libro Guia 2 edición Trillas",
  	"cantidad_pro[1]" => "5",
  	"precio_uni_pro[1]" => "270",
  	"importe_pro[1]" => "1,350.00"
}
			    

- Tabla de campos Response:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
error SI bool   Indica si existe un error en la ejecución. Si el valor es true existe un error.
message SI varchar   Describe los detalles de la ejecución. Aqui se pueden mostrar los detalles de los errores o los mensajes de ejecución correcta.
data NO array   Este campo solo aparece si el campo error es false. El valor devuelto es el id de la cotización.
status SI int   Muestra el estatus de la ejecución, devuelve un estatus "201" si todo es correcto, de lo contrario puede devolver un estatus "400" o "401".

 

Ejemplo de la respuesta :

Cotización correcta

  {
	"error": false,
    	"message": "Cotización guardada correctamente.",
    	"data": {
        	"id_cotizacion": "3366"
    	},
    	"status": 201
  }
			    

Cotización incorrecta

  {
		"error": true,
		"message": "Campo(s) fecha_emision falta(n) o esta(n) vacio(s)",
		"status": 400
  }
			    

Descripción

A continuación se describen los pasos a seguir para implementar la API de forma correcta. Siga a detalle cada paso, si presenta algun problema comuniquese con nosotros.

Métodos de Interacción

1.- Listar Categorias

URL

URL base para consumir la API.

 https://cloud.acontrol.net/restapi/v1

Método URL
POST /lista_categorias

HEADERS AUTHORIZATION*

Para la implementación de cualquier método deben implementar el header de autorización.

Key Value
X-Authorization e06952e347066213419ab45a15e37fb45c91f614
  array(
    "content-type: application/x-www-form-urlencoded",
    "X-Authorization: e06952e347066213419ab45a15e37fb45c91f614"
  );

Ejemplo PHP:

  CURLOPT_URL => "https://cloud.acontrol.net/restapi/v1/lista_categorias"
  CURLOPT_CUSTOMREQUEST => "POST"

- Establecer cabeceras:

  CURLOPT_HTTPHEADER => array(
    "content-type: application/x-www-form-urlencoded",
    "X-Authorization: e06952e347066213419ab45a15e37fb45c91f614"
  );

*NOTA: Es muy importante establecer las cabeceras, sin ellas no se permitira el consumo de la API.

- Campos de la petición:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
usuario_key SI varchar (alfanumérico sin espacios) 50 Llave del usuario.

 

Ejemplo de la petición API, método POST:

 {
		"usuario_key": "26c56cce490f3524e34a77b8688f7e2d3a9417419ff6889ccd" //Llave de ejemplo
	 }
				    

- Tabla de campos Response:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
error SI bool   Indica si existe un error en la ejecución. Si el valor es true existe un error.
message SI varchar   Describe los detalles de la ejecución. Aqui se pueden mostrar los detalles de los errores o los mensajes de ejecución correcta.
categorias SI objetc   Muestra la lista de categorias .
status SI int   Muestra el estatus de la ejecución, devuelve un estatus "201" si todo es correcto, de lo contrario puede devolver un estatus "400" o "401".

 

Ejemplo de la respuesta :

Categorías listadas

  {
    "error": false,
    "message": "Categorias listadas correctamente.",
    "categorias": [
        {
            "id": "1",
            "nombre": "DRONES",
            "imagen": "drones.png",
            "descripcion": "",
            "categoria_padre": "0"
        },
        {
            "id": "2",
            "nombre": "material electrico",
            "imagen": null,
            "descripcion": "",
            "categoria_padre": "23"
        },
        {
            "id": "3",
            "nombre": "CÁMARAS FOTOGRÁFICAS",
            "imagen": "camras.jpg",
            "descripcion": "",
            "categoria_padre": "0"
        },
        {
            "id": "4",
            "nombre": "REALIDAD VIRTUAL",
            "imagen": "realidad_1.jpg",
            "descripcion": "",
            "categoria_padre": "0"
        }
	],
    "status": 201
  }
				    

Listado de Categorias incorrecto

  {
	"error":true,
	"message":"Campo(s) usuario_key falta(n) o esta(n) vacio(s)",
	"status":400
	  }
				    

2.- Listar Categoría por ID

URL

URL base para consumir la API.

 https://cloud.acontrol.net/restapi/v1

Método URL
GET /categoria

HEADERS AUTHORIZATION*

Para la implementación de cualquier método deben implementar el header de autorización.

Key Value
X-Authorization e06952e347066213419ab45a15e37fb45c91f614
  array(
    "content-type: application/x-www-form-urlencoded",
    "X-Authorization: e06952e347066213419ab45a15e37fb45c91f614"
  );

Ejemplo PHP:

  CURLOPT_URL => "https://cloud.acontrol.net/restapi/v1/categoria?usuario_key=26c56cce490f3524e34a77b8688f7e2d3a9417419ff6889ccd&id_categoria=2"
  CURLOPT_CUSTOMREQUEST => "GET"

- Establecer cabeceras:

  CURLOPT_HTTPHEADER => array(
    "content-type: application/x-www-form-urlencoded",
    "X-Authorization: e06952e347066213419ab45a15e37fb45c91f614"
  );

*NOTA: Es muy importante establecer las cabeceras, sin ellas no se permitira el consumo de la API.

- Campos de la petición:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
usuario_key SI varchar (alfanumérico sin espacios) 50 Llave del usuario.
id_categoria SI int 11 Id de la categoría.

 

Ejemplo de la petición API, método GET:

 url => https://cloud.acontrol.net/restapi/v1/categoria?usuario_key=26c56cce490f3524e34a77b8688f7e2d3a9417419ff6889ccd&id_categoria=2
				    

- Tabla de campos Response:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
error SI bool   Indica si existe un error en la ejecución. Si el valor es true existe un error.
message SI varchar   Describe los detalles de la ejecución. Aqui se pueden mostrar los detalles de los errores o los mensajes de ejecución correcta.
categoria SI objetc   Muestra los datos de la categoria con el id especificado.
status SI int   Muestra el estatus de la ejecución, devuelve un estatus "201" si todo es correcto, de lo contrario puede devolver un estatus "400" o "401".

 

Ejemplo de la respuesta :

Categoría listada

  {
    "error": false,
    "message": "Categoria listada correctamente.",
    "categoria": [
        {
            "id": "2",
            "nombre": "material electrico",
            "imagen": null,
            "descripcion": "",
            "categoria_padre": "23"
        }
    ],
    "status": 201
  }

Lista de Categoria incorrecto

  {
	"error":true,
	"message":"Campo(s) usuario_key, id_categoria falta(n) o 
		esta(n) vacio(s)",
	"status":400
	  }
				    

Descripción

A continuación se describen los pasos a seguir para implementar la API de forma correcta. Siga a detalle cada paso, si presenta algun problema comuniquese con nosotros.

Métodos de Interacción

1.- Listar Productos Inventario

URL

URL base para consumir la API.

 https://cloud.acontrol.net/restapi/v1

Método URL
POST /lista_inventarios

HEADERS AUTHORIZATION*

Para la implementación de cualquier método deben implementar el header de autorización.

Key Value
X-Authorization e06952e347066213419ab45a15e37fb45c91f614
  array(
    "content-type: application/x-www-form-urlencoded",
    "X-Authorization: e06952e347066213419ab45a15e37fb45c91f614"
  );

Ejemplo PHP:

  CURLOPT_URL => "https://cloud.acontrol.net/restapi/v1/lista_inventarios"
  CURLOPT_CUSTOMREQUEST => "POST"

- Establecer cabeceras:

  CURLOPT_HTTPHEADER => array(
    "content-type: application/x-www-form-urlencoded",
    "X-Authorization: e06952e347066213419ab45a15e37fb45c91f614"
  );

*NOTA: Es muy importante establecer las cabeceras, sin ellas no se permitira el consumo de la API.

- Campos de la petición:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
usuario_key SI varchar (alfanumérico sin espacios) 50 Llave del usuario.

 

Ejemplo de la petición API, método POST:

 {
		"usuario_key": "26c56cce490f3524e34a77b8688f7e2d3a9417419ff6889ccd" //Llave de ejemplo
	 }
				    

- Tabla de campos Response:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
error SI bool   Indica si existe un error en la ejecución. Si el valor es true existe un error.
message SI varchar   Describe los detalles de la ejecución. Aqui se pueden mostrar los detalles de los errores o los mensajes de ejecución correcta.
productos SI objetc   Muestra la lista de productos del inventario .
status SI int   Muestra el estatus de la ejecución, devuelve un estatus "201" si todo es correcto, de lo contrario puede devolver un estatus "400" o "401".

 

Ejemplo de la respuesta :

Productos Inventario listadas

  {
    "error": false,
    "message": "Producto de inventario listado correctamente.",
    "productos": [
        {
            "id": "1",
            "categoria": "1",
            "nombre": "Phantom 3 Standard",
            "modelo": "",
            "codigo": "PS123",
            "stock_min": "0",
            "stock_max": "0",
            "no_serie": "",
            "existencia_total": "0.00",
            "pendientes_recibir_total": "2.00",
            "pendientes_surtir_total": "11.00",
            "existencia_matriz": "0.00",
            "existencia_cs": "0",
            "existencia_G1": "0",
            "existencia_TC": "0"
        },
        {
            "id": "2",
            "categoria": "1",
            "nombre": "SPARK",
            "modelo": "DR-SPK",
            "codigo": "",
            "stock_min": "0",
            "stock_max": "0",
            "no_serie": "",
            "existencia_total": "1.00",
            "pendientes_recibir_total": "0.00",
            "pendientes_surtir_total": "4.00",
            "existencia_matriz": "0.00",
            "existencia_cs": "0",
            "existencia_G1": "1",
            "existencia_TC": "0"
        },
        {
            "id": "3",
            "categoria": "1",
            "nombre": "MAVIC PRO",
            "modelo": "DR-MAP",
            "codigo": "141413",
            "stock_min": "0",
            "stock_max": "0",
            "no_serie": "",
            "existencia_total": "5.00",
            "pendientes_recibir_total": "0.00",
            "pendientes_surtir_total": "5.00",
            "existencia_matriz": "5.00",
            "existencia_cs": "0",
            "existencia_G1": "0",
            "existencia_TC": "0"
        },
        {
            "id": "4",
            "categoria": "1",
            "nombre": "Phantom 4 PRO",
            "modelo": "DR-P4P",
            "codigo": null,
            "stock_min": "0",
            "stock_max": "0",
            "no_serie": "",
            "existencia_total": "9.00",
            "pendientes_recibir_total": "0.00",
            "pendientes_surtir_total": "3.00",
            "existencia_matriz": "9.00",
            "existencia_cs": "0",
            "existencia_G1": "0",
            "existencia_TC": "0"
        }
	],
    "status": 201
  }
				    

Listado de Productos Inventario incorrecto

  {
	"error":true,
	"message":"Campo(s) usuario_key falta(n) o esta(n) vacio(s)",
	"status":400
	  }
				    

2.- Listar Producto Inventario por ID

URL

URL base para consumir la API.

 https://cloud.acontrol.net/restapi/v1

Método URL
GET /inventario

HEADERS AUTHORIZATION*

Para la implementación de cualquier método deben implementar el header de autorización.

Key Value
X-Authorization e06952e347066213419ab45a15e37fb45c91f614
  array(
    "content-type: application/x-www-form-urlencoded",
    "X-Authorization: e06952e347066213419ab45a15e37fb45c91f614"
  );

Ejemplo PHP:

  CURLOPT_URL => "https://cloud.acontrol.net/restapi/v1/inventario?usuario_key=26c56cce490f3524e34a77b8688f7e2d3a9417419ff6889ccd&id_producto=2"
  CURLOPT_CUSTOMREQUEST => "GET"

- Establecer cabeceras:

  CURLOPT_HTTPHEADER => array(
    "content-type: application/x-www-form-urlencoded",
    "X-Authorization: e06952e347066213419ab45a15e37fb45c91f614"
  );

*NOTA: Es muy importante establecer las cabeceras, sin ellas no se permitira el consumo de la API.

- Campos de la petición:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
usuario_key SI varchar (alfanumérico sin espacios) 50 Llave del usuario.
id_producto SI int 11 Id del producto.

 

Ejemplo de la petición API, método GET:

 url => https://cloud.acontrol.net/restapi/v1/inventario?usuario_key=26c56cce490f3524e34a77b8688f7e2d3a9417419ff6889ccd&id_producto=2
				    

- Tabla de campos Response:

VARIABLE VALOR OBLIGATORIO TIPO LONGITUD DESCRIPCIÓN
error SI bool   Indica si existe un error en la ejecución. Si el valor es true existe un error.
message SI varchar   Describe los detalles de la ejecución. Aqui se pueden mostrar los detalles de los errores o los mensajes de ejecución correcta.
producto SI objetc   Muestra los datos del producto con el id especificado.
status SI int   Muestra el estatus de la ejecución, devuelve un estatus "201" si todo es correcto, de lo contrario puede devolver un estatus "400" o "401".

 

Ejemplo de la respuesta :

Categoría listada

  {
    "error": false,
    "message": "Producto de inventario listado correctamente.",
    "producto": [
        {
            "id": "2",
            "categoria": "1",
            "nombre": "SPARK",
            "modelo": "DR-SPK",
            "codigo": "",
            "stock_min": "0",
            "stock_max": "0",
            "no_serie": "",
            "existencia_total": "1.00",
            "pendientes_recibir_total": "0.00",
            "pendientes_surtir_total": "4.00",
            "existencia_matriz": "0.00",
            "existencia_cs": "0",
            "existencia_G1": "1",
            "existencia_TC": "0"
        }
    ],
    "status": 201
  }

Lista de Productos Inventario incorrecto

  {
	"error":true,
	"message":"Campo(s) usuario_key, id_producto falta(n) o 
		esta(n) vacio(s)",
	"status":400
	  }