La API de Contasimple funciona usando un sistema estándar de Oauth2, lo que significa que para utilizar cualquier funcionalidad se debe disponer previamente de 2 claves,
"Client Id" y
"Client Secret".
Estas claves serán necesarias para realizar cualquier acción e identifican el partner de Contasimple que está realizando la petición.
Deberán ser proporcionados por el equipo de soporte de Contasimple, si no dispones de ellas, contacta con tu agente comercial o envíanos un mensaje a través del correo: soporte@contasimple.com.
Los diferentes servicios proporcionados para partners son:
- Creación de usuarios: Permite crear usuarios de forma automática en el dominio que realiza la petición.
- Modificación de la contraseña: Permite modificar la contraseña de un usuario. Requiere disponer de la contraseña antigua. Requiere realizar un login previo con los datos del usuario al que se desea modificar la contraseña.
- Acceso automático a la plataforma: Permite generar un token a acceso automático a la plataforma. Requiere realizar un login previo con los datos del usuario al que se desea modificar la contraseña.
Para los servicios que requieren un login previo se puede realizar una llamada al servicio
POST
enviando los siguientes datos via "form-data":
: "password"
: "Clave proporcionada por Contasimple"
: "Clave proporcionada por Contasimple"
: "Email del usuario"
: "Contraseña del usuario"
Si los datos son correctos esta llamada retorna una estructura que contiene un campo
"access_token" que deberá añadirse como cabecera en las llamadas siguientes.
Authorization = Bearer
Ejemplos de código:
var settings = {
'async': true,
'crossDomain': true,
'url': '/oauth/token',
'method': 'POST',
'headers': {
'content-type': 'application/x-www-form-urlencoded'
},
'processData': false,
'data':'{"grant_type":"password","client_id":,"client_secret":,"username":,"password":}'
}
$.ajax(settings).done(function (response) {
console.log(response);
});
$request = new HttpRequest();
$request->setUrl('/oauth/token');
$request->setMethod(HTTP_METH_POST);
$request->setHeaders(array(
'content-type' => 'application/x-www-form-urlencoded'
));
$request->setContentType('application/x-www-form-urlencoded');
$request->setPostFields(array(
'grant_type' => 'password',
'username' => ,
'password' => ,
'client_id' => ,
'client_secret' =>
));
$response = $request->send();
El servicio de creación de usuarios requiere realizar una llamada al servicio
POST
enviando los siguientes datos:
{
: "Clave proporcionada por Contasimple",
: "Clave proporcionada por Contasimple",
: "Email del nuevo usuario",
: "Contraseña para el nuevo usuario",
: "Código de promoción para crear el usuario"
: {
: "Id de la invitación a la empresa"
: "Token de la invitación a la empresa"
}
}
Puedes testear el acceso al servicio con el siguiente formulario (requiere introducir previamente tu
"Client Id" y
"Client Secret").
Ejemplos de código:
var settings = {
'async': true,
'crossDomain': true,
'url': '/users/create',
'method': 'POST',
'headers': {
'content-type': 'application/json'
},
'processData': false,
'data':'{"clientId":,"clientSecret":,"username":,"password":}'
}
$.ajax(settings).done(function (response) {
console.log(response);
});
$request = new HttpRequest();
$request->setUrl('/users/create');
$request->setMethod(HTTP_METH_POST);
$request->setHeaders(array(
'content-type' => 'application/json'
));
$request->setBody('{
"clientId": ,
"clientSecret": ,
"username": ,
"password":
}');
$response = $request->send();
El servicio para modificar la contraseña de un usuario requiere realizar una llamada al servicio
POST
enviando la cabecera de autorización:
Authorization = Bearer
y los siguientes datos:
{
: "Contraseña actual del usuario",
: "Nueva contraseña para el usuario"
}
Puedes testear el acceso al servicio con el siguiente formulario (requiere introducir previamente tu
"Client Id" y
"Client Secret").
Ejemplos de código:
var settings = {
'async': true,
'crossDomain': true,
'url': '/me/password',
'method': 'PATCH',
'headers': {
'content-type': 'application/json',
'authorization': 'Bearer '
},
'processData': false,
'data':'{"currentPassword":,"newPassword":}'
}
$.ajax(settings).done(function (response) {
console.log(response);
});
HttpRequest::methodRegister('PATCH');
$request = new HttpRequest();
$request->setUrl('/me/password');
$request->setMethod(HttpRequest::HTTP_METH_PATCH);
$request->setHeaders(array(
'authorization' => 'Bearer ',
'content-type' => 'application/json'
));
$request->setBody('{
"currentPassword": ,
"newPassword":
}');
$response = $request->send();
El servicio para generar un token de acceso automático requiere realizar una llamada al servicio
POST
enviando la cabecera de autorización:
Authorization = Bearer
Esta llamada retorna un objeto con un campo "data" que contiene un campo "token" que se debe añadir como parámetro a la página de login de Contasimple.
https:///login.aspx?token=
Puedes testear el acceso al servicio con el siguiente formulario (requiere introducir previamente tu
"Client Id" y
"Client Secret").
Ejemplos de código:
var settings = {
'async': true,
'crossDomain': true,
'url': '/me/token',
'method': 'POST',
'headers': {
'content-type': 'application/json',
'authorization': 'Bearer '
},
'processData': false,
'data':''
}
$.ajax(settings).done(function (response) {
console.log(response);
});
$request = new HttpRequest();
$request->setUrl('/me/token');
$request->setMethod(HTTP_METH_POST);
$request->setHeaders(array(
'authorization' => 'Bearer ',
'content-type' => 'application/json'
));
$response = $request->send();
La API de Contasimple permite integración mediante
Authorization Code Grant. De esta forma el integrador no es responsable de capturar el usuario y la contraseña del usuario.
Para ello será necesario redirigir al usuario a la página de login de Contasimple para solicitar el authorization code. El formato de la URL es el siguiente:
Dónde:
- SITE-URL: Corresponde a la URL de la plataforma web en el entorno deseado.
- CLIENT-ID: El identificador de cliente asociado a la integración.
- REDIRECT-URL: La URL a la que se redirigirá al usuario una vez el usuario ha completado el login.
- SCOPE: Añadir el valor "offline_access" si es necesario obtener un "refresh token" y poder acceder a la información del usuario en segundo plano. En caso de no necesitar "refresh token" es posible no indicar este parámetro. En ese caso, una vez caducado el "auth token"será necesario que el usuario vuelva a introducir sus credenciales.
Una vez el usuario haya completado la autorización, se reenviará al mismo a la URL proporcionada como
REDIRECT-URL añadiendo un parámetro
"code" con el código necesario para completar la autorización.
Para ello se deberá realizar una llamada a:
POST
enviando los siguientes datos via "form-data":
: "authorization_code"
: "Clave proporcionada por Contasimple"
: "Clave proporcionada por Contasimple"
: "El valor obtenido en el paso anterior"
Si los datos son correctos esta llamada retorna una estructura que contiene un campo
"access_token" que deberá añadirse como cabecera en las llamadas siguientes.
Authorization = Bearer
En la respuesta se obtendrá también un campo
"refresh_token" que puede usarse para obtener un nuevo
"access_token" con una llamada a
POST
enviando los siguientes datos via "form-data":
: "refresh_token"
: "Clave proporcionada por Contasimple"
: "Clave proporcionada por Contasimple"
: "El valor obtenido en el paso anterior"