Acerca de la API de OBUMA

https://www.obuma.cl/ayuda/articulo/12/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.
  • Portales de clientes, proveedores, empleados, otros...

 

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, se cobra como un super usuario, y por el momento solo existe posibilidad de generar un unico TOKEN por empresa, 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.

 

REQUEST HEADER API v1.0

content-type:application/json
access-token: API-KEY-OBUMA

La version 1.0 admite una sola APIKEY para una empresa. 

 

REQUES HEADER API v2.0

content-type:application/json
access-token: API-KEY-OBUMA
access-url: API-ACCESS-URL or CLIENT URL

La version 2.0 admite multiples APIKEY y control de acceso a los endpoints por APIKEY, cada APIKEY creada tiene costo. 

 

Sobre las URLs ( Endpoints ) :

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 (endpoint) nos entrega una lista de todas las categorias de productos de una empresa determinada. 

Debes obtener un access token: *** Entregado por OBUMA *** El access token debe ser resguardado como cualquier otra clave, y su uso es entera responsabilidad del cliente.

 

Sobre el retorno de datos :

 

Todos los enpoints tienen un límite diario de 1.000 consultas, se debe tener en cuenta esta limitación a la hora de planificar los consumos de recursos.

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

Todas las consultas, tienen un limite maximo de retorno de 1000 items o rows. OJO, este límite no se puede aumentar, y en ciertos modulos especificos puede ser menor a 1000.

"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.
 
{
"data-actual-total": 1,
"data-actual-limit": 100,
"data-actual-page": 1,
"data-total-items": 1,
"data-total-pages": 1,
"data": [
  {
   "venta_id": "2943058",
   "venta_dia": "01"...
 
 
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);