Acerca de la API de OBUMA


Bienvenido a la Documentacion de la API de OBUMA.

Una API no es más que un estandar de entrega y recepción de datos definido por una aplicación para permitir la interacción con otras aplicaciones.

La API de OBUMA te permitirá obtener, enviar y actualizar datos desde y hacia OBUMA via HTTP y JSON. Con la API es muy facil desarrollar aplicaciones web, desktop y moviles que interactuen con OBUMA.

Algunas ideas interesantes a desarrollar con la API son:

  • Tiendas online conectadas a OBUMA.
  • Sistemas propios de gestion de proyectos.
  • Sistemas propios de control de produccion.
  • Importar y exportar datos en formatos predefinidos.
  • Sistemas propios de backups.
  • Reportes personalizados.
  • Aplicaciones moviles.

 

 Sobre la Autenticacion

Para acceder a la API solo hace falta tener una cuenta cliente de OBUMA ERP y un access_token. La API de OBUMA no es GRATIS, tiene un costo asociado que debes consultar a nuestro departamento comercial.

El access_token debe ser enviado en una variable via header.

La API es del tipo REST y utiliza JSON para el envío y recepción de información.

 

 Sobre las URLs

La API consta de diversas URLs que ejecutan determinadas tareas, en dependencia de la url invocada.

Actualmente existen 5 URL principales, o mas comunes:

list : Entrega una lista de elementos de entidad determinada  (clientes, proveedores, empleados, etc...)

findById : Devuelve una entidad determinada por el ID entregado.

create : Crea una entidad nueva.

update : Actualiza una entidad con los datos entregados.

delete : Elimina una entidad. Normalmente en OBUMA no se pueden eliminar entidades, por lo cual los modulos que tengan permitida esta funcion lo mostraran en su lista de funciones.

Para ocupar la api, debes invocar la URL de la API + METODO + RECURSO

URL de la API : https://api.obuma.cl/v1.0

METODO + RECURSO : /productosCategorias.list.json

Ejemplo : https://api.obuma.cl/v1.0/productosCategorias.list.json

Esta url nos entrega una lista de todas las categorias de productos de una empresa determinada. 

Debes obtener un access token: *** Entregado por OBUMA ***

 

Sobre el retorno de datos

Todas las consultas a la API devuelven una serie de variables con datos. Los datos devueltos son en JSON.

Todas las consultas, tienen un limite maximo de retorno de 100 items o rows.

"data-actual-total": 56
 
"data-actual-limit": 100
 
"data-actual-page": 1
 
"data-total-items": 56
 
"data-total-pages": 1
 
"data":  esta variable trae el retorno final de los datos solicitados, normalmente es un array, en algunos casos trae solo el dato solicitado.
 
Puede darse el caso de que algun metodo en especifico retorne otras variables.
 
 
Paginacion : para poder usar el paginador, puedes pasar via GET las siguientes variables:
 
limit : es opcional, indicas la cantidad de items por pagina que deseas usar. Por defecto y como maximo toma el valor 100.
 
page : le indicas al sistema la pagina que deseas visualizar.
 
Ejemplo : clientes.list.json/?page=2
 
 

 Sobre el Soporte

El soporte para la API es solo via correo electronico a soporte@obuma.cl o via ticket desde la aplicacion. No se entrega soporte para el uso de la API via telefono o chat.

 

Ejemplo en PHP: 

El punto de partida debiese ser crear un archivo con nombre: connector.php

Dentro de este archivo, ingresaremos las funciones que permiten conectar con la API de OBUMA y el acces_token entregado a tu empresa.

$access_token = 'tu_token';
function get_recurso ( $url ){
    global $access_token; 
// Inicia cURL    
$session = curl_init($url);

// Indica a cURL que retorne data    
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
    
// Configura cabeceras    
$headers = array(        'access_token: ' . $access_token,        'Accept: application/json',        'Content-Type: application/json'    );    curl_setopt($session, CURLOPT_HTTPHEADER, $headers);
    
// Ejecuta cURL    
$response = curl_exec($session);    
$code = curl_getinfo($session, CURLINFO_HTTP_CODE);
    
// Cierra la sesión cURL    
curl_close($session);
    
//Esto es sólo para poder visualizar lo que se está retornando    
//---print_r($response); 

$json = json_decode($response); 

return $json;
}


function post_recurso ( $url, $data ){
    global $access_token; 

// json encode data 
$data_string = json_encode($data); 

// Inicia cURL    
$session = curl_init($url);

// Indica a cURL que retorne data    
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
    
// Configura cabeceras    
$headers = array(        'access_token: ' . $access_token,        'Accept: application/json',        'Content-Type: application/json'    );    curl_setopt($session, CURLOPT_HTTPHEADER, $headers);
  
// Indica que se va ser una petición POST    
curl_setopt($session, CURLOPT_POST, true);
    
// Agrega parámetros    
curl_setopt($session, CURLOPT_POSTFIELDS, $data_string);
    
// Ejecuta cURL    
$response = curl_exec($session);    
$code = curl_getinfo($session, CURLINFO_HTTP_CODE);
    
// Cierra la sesión cURL    
curl_close($session);

//Esto es sólo para poder visualizar lo que se está retornando    

//---print_r($response); 

$json = json_decode($response); return $json;

}



Ejemplo de como obtener un listado de las categorias de productos: 

require_once('connector.php');    

 $url='https://api.obuma.cl/v1.0/productosCategorias.list.json';

 $json = get_recurso($url);

  $json = json_encode($json, true);

 $json = json_decode($json, true);

 print_r($json);

 

Ejemplo de como crear una nueva categoria de productos:

require_once('connector.php');    

$data = array ( "producto_categoria_nombre" => "combustibles");

$url='https://api.obuma.cl/v1.0/productosCategorias.create.json';

 $json = post_recurso($url, $data);

 print_r($json);