shell ruby python javascript java php go

Introducción

Bienvenido al sitio web de documentación del API de Cuéntica.

Puedes usar el API para acceder a todas las funcionalidades del sistema, pensadas para facilitar el control y la gestión contable y fiscal de los autónomos y pequeñas empresas.

El API usa la arquitectura REST, que nos permite ofrecer el servicio de una manera estándar, comprensible y con URL’s orientadas a recursos. Usamos las funcionalidades que nos ofrece HTTP (Autenticación HTTP, verbos para expresar las acciones y códigos de respuesta) y como formato de respuesta usamos JSON por ser uno de los más extendidos y de mejor lectura.

Autenticación

Para autenticarte con nuestra API necesitas enviarnos el token como parte de la cabecera de las peticiones.

La asignación del token es por usuario y por empresa, por lo que una aplicación cliente puede tener permisos para acceder sólo a una de las empresas de un usuario y no al resto.

La cabecera que comprobamos es X-AUTH-TOKEN. En caso de que no esté incluída o sea errónea, será devuelto un error 403.

Limite de peticiones

El limite de peticiones que aceptamos son 750 peticiones cada 5 minutos.

Este limite puede ser cambiado en el futuro, pero en todo caso mantendremos un limite que permita hacer un uso responsable del API y que se ajuste a los casos de uso de los usuarios.

Headers de la respuesta:

Nombre Descripción
X-RateLimit-Limit Numero de petición actual.
X-RateLimit-Remaining Peticiones restantes para el bloque actual.
X-RateLimit-Reset Fecha y hora de fin de este bloque de peticiones (Formato epoch).

Paginación

El limite máximo de items que se pueden devolver en una consulta es 300.

Las rutas que aceptan paginación son:

Headers de la respuesta:

Nombre Descripción
X-Pagination-CurrentPage Pagina que se ha recibido
X-Pagination-PageSize Numero de elementos por página
X-Pagination-TotalElements Elementos totales del recurso que se esta pidiendo, despues de aplicar filtros si los hubiera

Empresa

/company

get


curl --request GET \
  --url https://api.cuentica.com/company


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/company")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("GET", "/company")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/company",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.get("https://api.cuentica.com/company")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/company');
$request->setMethod(HTTP_METH_GET);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/company"

    req, _ := http.NewRequest("GET", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Obtener los datos de tu negocio.

/company/serie

get


curl --request GET \
  --url https://api.cuentica.com/company/serie


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/company/serie")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("GET", "/company/serie")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/company/serie",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.get("https://api.cuentica.com/company/serie")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/company/serie');
$request->setMethod(HTTP_METH_GET);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/company/serie"

    req, _ := http.NewRequest("GET", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Obtener las series de facturación de tu negocio.

Cuenta

/account

get


curl --request GET \
  --url https://api.cuentica.com/account


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/account")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("GET", "/account")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/account",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.get("https://api.cuentica.com/account")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/account');
$request->setMethod(HTTP_METH_GET);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/account"

    req, _ := http.NewRequest("GET", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Obtener una lista de cuentas de la empresa (cuentas bancarias, tarjetas de débito/crédito y cuentas de socios).

/account/:id

get


curl --request GET \
  --url https://api.cuentica.com/account/:id


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/account/:id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("GET", "/account/:id")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/account/:id",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.get("https://api.cuentica.com/account/:id")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/account/:id');
$request->setMethod(HTTP_METH_GET);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/account/:id"

    req, _ := http.NewRequest("GET", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Obtener cuenta de la empresa que corresponde con el id pasado como parámetro.

Proveedor

/provider

get


curl --request GET \
  --url https://api.cuentica.com/provider


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/provider")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("GET", "/provider")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/provider",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.get("https://api.cuentica.com/provider")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/provider');
$request->setMethod(HTTP_METH_GET);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/provider"

    req, _ := http.NewRequest("GET", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Obtener lista de proveedores.
  • Parámetros opcionales en la URL:
Nombre Descripción
page_size Número de elementos que quieren obtenerse por página.
page Página que se quiere obtener.
q Devolverá los elementos que contengan el texto en cualquiera de los siguientes campos: razón social, dirección, cif, teléfono e email.

post


curl --request POST \
  --url https://api.cuentica.com/provider \
  --data '{"default_retention":0,"default_expense_type":"600"}'


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/provider")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request.body = "{\"default_retention\":0,\"default_expense_type\":\"600\"}"

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

payload = "{\"default_retention\":0,\"default_expense_type\":\"600\"}"

conn.request("POST", "/provider", payload)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/provider",
  "method": "POST",
  "headers": {},
  "processData": false,
  "data": "{\"default_retention\":0,\"default_expense_type\":\"600\"}"
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.post("https://api.cuentica.com/provider")
  .body("{\"default_retention\":0,\"default_expense_type\":\"600\"}")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/provider');
$request->setMethod(HTTP_METH_POST);

$request->setBody('{"default_retention":0,"default_expense_type":"600"}');

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "strings"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/provider"

    payload := strings.NewReader("{\"default_retention\":0,\"default_expense_type\":\"600\"}")

    req, _ := http.NewRequest("POST", url, payload)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Añadir un nuevo proveedor.
  • Parametros obligatorios en la petición:
Nombre Descripción
address string Dirección de la empresa, calle, número, piso…
town string Población.
postal_code string Código postal.
cif string Identificación única de la empresa, si ya existe una empresa con este número no podrá realizarse el registro.
tradename string Nombre comercial.
Si el campo business_type es individual y este campo no se envía se autogenerará.
business_name string Razón social.
Obligatorio si el campo business_type no es individual.
name string Obligatorio si el campo business_type es individual.
surname_1 string Obligatorio si el campo business_type es individual.
business_type string Valores aceptados:
individual, company, others

Detalle:
individual -> Persona física, freelance…
company -> Sociedad (SL, SA, SC, SLL, SLU)
others -> Comunidad de bienes, instituciones…
region string Valores aceptados si el país es España
Detalle:
Provincia.
  • Parametros opcionales en la petición:
Nombre Descripción
surname_2 string Usado si el campo business_type es individual.
country_code string Código del país en formato ISO 3166-1 (dos letras)
Por defecto ES
default_payment_method string Valores aceptados:
cash, receipt, wire_transfer, card, promissory_note, other

Detalle:
Este es el método de pago por defecto asociado a esta empresa.
Se usará en caso de no enviar un valor en otras operaciones relacionadas con esta empresa
fax string Número de fax.
phone string Número de teléfono.
web string Url de la empresa.
email string Correo electrónico.
contact_person string Persona de contacto.
personal_comment string Comentario personal.
default_retention number IRPF por defecto que se aplicará a las operaciones con el proveedor
default_expense_type string Valores aceptados

/provider/:id

get


curl --request GET \
  --url https://api.cuentica.com/provider/:id


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/provider/:id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("GET", "/provider/:id")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/provider/:id",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.get("https://api.cuentica.com/provider/:id")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/provider/:id');
$request->setMethod(HTTP_METH_GET);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/provider/:id"

    req, _ := http.NewRequest("GET", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Obtener el proveedor que corresponde con el id pasado como parámetro.

put


curl --request PUT \
  --url https://api.cuentica.com/provider/:id


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/provider/:id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("PUT", "/provider/:id")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/provider/:id",
  "method": "PUT",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.put("https://api.cuentica.com/provider/:id")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/provider/:id');
$request->setMethod(HTTP_METH_PUT);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/provider/:id"

    req, _ := http.NewRequest("PUT", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Actualizar un proveedor.
  • Parametros obligatorios en la petición:
Nombre Descripción
address string Dirección de la empresa, calle, número, piso…
town string Población.
postal_code string Código postal.
cif string Identificación única de la empresa, si ya existe una empresa con este número no podrá realizarse el registro.
tradename string Nombre comercial.
Si el campo business_type es individual y este campo no se envía se autogenerará.
business_name string Razón social.
Obligatorio si el campo business_type no es individual.
name string Obligatorio si el campo business_type es individual.
surname_1 string Obligatorio si el campo business_type es individual.
business_type string Valores aceptados:
individual, company, others

Detalle:
individual -> Persona física, freelance…
company -> Sociedad (SL, SA, SC, SLL, SLU)
others -> Comunidad de bienes, instituciones…
region string Valores aceptados si el país es España
Detalle:
Provincia.
  • Parametros opcionales en la petición:
Nombre Descripción
surname_2 string Usado si el campo business_type es individual.
country_code string Código del país en formato ISO 3166-1 (dos letras)
Por defecto ES
default_payment_method string Valores aceptados:
cash, receipt, wire_transfer, card, promissory_note, other

Detalle:
Este es el método de pago por defecto asociado a esta empresa.
Se usará en caso de no enviar un valor en otras operaciones relacionadas con esta empresa
fax string Número de fax.
phone string Número de teléfono.
web string Url de la empresa.
email string Correo electrónico.
contact_person string Persona de contacto.
personal_comment string Comentario personal.
default_retention number IRPF por defecto que se aplicará a las operaciones con el proveedor
default_expense_type string Valores aceptados

delete


curl --request DELETE \
  --url https://api.cuentica.com/provider/:id


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/provider/:id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("DELETE", "/provider/:id")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/provider/:id",
  "method": "DELETE",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.delete("https://api.cuentica.com/provider/:id")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/provider/:id');
$request->setMethod(HTTP_METH_DELETE);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/provider/:id"

    req, _ := http.NewRequest("DELETE", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Eliminar un proveedor.

  • Respuesta: Status 200

Cliente

/customer

get


curl --request GET \
  --url https://api.cuentica.com/customer


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/customer")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("GET", "/customer")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/customer",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.get("https://api.cuentica.com/customer")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/customer');
$request->setMethod(HTTP_METH_GET);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/customer"

    req, _ := http.NewRequest("GET", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Obtener lista de clientes.
  • Parámetros opcionales en la URL:
Nombre Descripción
page_size Número de elementos que quieren obtenerse por página.
page Página que se quiere obtener.
q Devolverá los elementos que contengan el texto en cualquiera de los siguientes campos: razón social, dirección, cif, teléfono e email.

post


curl --request POST \
  --url https://api.cuentica.com/customer \
  --data '{"default_invoice_language":"default","has_surcharge":false}'


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/customer")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request.body = "{\"default_invoice_language\":\"default\",\"has_surcharge\":false}"

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

payload = "{\"default_invoice_language\":\"default\",\"has_surcharge\":false}"

conn.request("POST", "/customer", payload)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/customer",
  "method": "POST",
  "headers": {},
  "processData": false,
  "data": "{\"default_invoice_language\":\"default\",\"has_surcharge\":false}"
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.post("https://api.cuentica.com/customer")
  .body("{\"default_invoice_language\":\"default\",\"has_surcharge\":false}")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/customer');
$request->setMethod(HTTP_METH_POST);

$request->setBody('{"default_invoice_language":"default","has_surcharge":false}');

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "strings"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/customer"

    payload := strings.NewReader("{\"default_invoice_language\":\"default\",\"has_surcharge\":false}")

    req, _ := http.NewRequest("POST", url, payload)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Añadir un nuevo cliente.
  • Parametros obligatorios en la petición:
Nombre Descripción
address string Dirección de la empresa, calle, número, piso…
town string Población.
postal_code string Código postal.
cif string Identificación única de la empresa, si ya existe una empresa con este número no podrá realizarse el registro.
tradename string Nombre comercial.
Si el campo business_type es individual y este campo no se envía se autogenerará.
business_name string Razón social.
Obligatorio si el campo business_type no es individual.
name string Obligatorio si el campo business_type es individual.
surname_1 string Obligatorio si el campo business_type es individual.
business_type string Valores aceptados:
individual, company, others

Detalle:
individual -> Persona física, freelance…
company -> Sociedad (SL, SA, SC, SLL, SLU)
others -> Comunidad de bienes, instituciones…
region string Valores aceptados si el país es España
Detalle:
Provincia.
  • Parametros opcionales en la petición:
Nombre Descripción
surname_2 string Usado si el campo business_type es individual.
country_code string Código del país en formato ISO 3166-1 (dos letras)
Por defecto ES
default_payment_method string Valores aceptados:
cash, receipt, wire_transfer, card, promissory_note, other

Detalle:
Este es el método de pago por defecto asociado a esta empresa.
Se usará en caso de no enviar un valor en otras operaciones relacionadas con esta empresa
fax string Número de fax.
phone string Número de teléfono.
web string Url de la empresa.
email string Correo electrónico.
contact_person string Persona de contacto.
personal_comment string Comentario personal.
default_invoice_language string Valores aceptados:
default, es, eu, ca, en

Detalle:
Idioma por defecto que se usará en las facturas que se emitan a este cliente, y que no reciban el campo invoice_language.
default -> Valor por defecto de la empresa
es -> Español
eu -> Euskera
ca -> Catalan
en -> Inglés
has_surcharge boolean Define si las facturas del cliente van a tener recargo de equivalencia por defecto.

/customer/:id

get


curl --request GET \
  --url https://api.cuentica.com/customer/:id


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/customer/:id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("GET", "/customer/:id")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/customer/:id",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.get("https://api.cuentica.com/customer/:id")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/customer/:id');
$request->setMethod(HTTP_METH_GET);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/customer/:id"

    req, _ := http.NewRequest("GET", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Obtener el cliente que corresponde con el id pasado como parámetro.

put


curl --request PUT \
  --url https://api.cuentica.com/customer/:id


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/customer/:id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("PUT", "/customer/:id")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/customer/:id",
  "method": "PUT",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.put("https://api.cuentica.com/customer/:id")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/customer/:id');
$request->setMethod(HTTP_METH_PUT);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/customer/:id"

    req, _ := http.NewRequest("PUT", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Actualizar un cliente.
  • Parametros obligatorios en la petición:
Nombre Descripción
address string Dirección de la empresa, calle, número, piso…
town string Población.
postal_code string Código postal.
cif string Identificación única de la empresa, si ya existe una empresa con este número no podrá realizarse el registro.
tradename string Nombre comercial.
Si el campo business_type es individual y este campo no se envía se autogenerará.
business_name string Razón social.
Obligatorio si el campo business_type no es individual.
name string Obligatorio si el campo business_type es individual.
surname_1 string Obligatorio si el campo business_type es individual.
business_type string Valores aceptados:
individual, company, others

Detalle:
individual -> Persona física, freelance…
company -> Sociedad (SL, SA, SC, SLL, SLU)
others -> Comunidad de bienes, instituciones…
region string Valores aceptados si el país es España
Detalle:
Provincia.
  • Parametros opcionales en la petición:
Nombre Descripción
surname_2 string Usado si el campo business_type es individual.
country_code string Código del país en formato ISO 3166-1 (dos letras)
Por defecto ES
default_payment_method string Valores aceptados:
cash, receipt, wire_transfer, card, promissory_note, other

Detalle:
Este es el método de pago por defecto asociado a esta empresa.
Se usará en caso de no enviar un valor en otras operaciones relacionadas con esta empresa
fax string Número de fax.
phone string Número de teléfono.
web string Url de la empresa.
email string Correo electrónico.
contact_person string Persona de contacto.
personal_comment string Comentario personal.
default_invoice_language string Valores aceptados:
default, es, eu, ca, en

Detalle:
Idioma por defecto que se usará en las facturas que se emitan a este cliente, y que no reciban el campo invoice_language.
default -> Valor por defecto de la empresa
es -> Español
eu -> Euskera
ca -> Catalan
en -> Inglés
has_surcharge boolean Define si las facturas del cliente van a tener recargo de equivalencia por defecto.

delete


curl --request DELETE \
  --url https://api.cuentica.com/customer/:id


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/customer/:id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("DELETE", "/customer/:id")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/customer/:id",
  "method": "DELETE",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.delete("https://api.cuentica.com/customer/:id")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/customer/:id');
$request->setMethod(HTTP_METH_DELETE);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/customer/:id"

    req, _ := http.NewRequest("DELETE", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Eliminar un cliente.

  • Respuesta: Status 200

Factura

/invoice

get


curl --request GET \
  --url https://api.cuentica.com/invoice


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/invoice")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("GET", "/invoice")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/invoice",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.get("https://api.cuentica.com/invoice")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/invoice');
$request->setMethod(HTTP_METH_GET);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/invoice"

    req, _ := http.NewRequest("GET", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Obtener lista de facturas.
  • Parámetros opcionales en la URL:
Nombre Descripción
page_size Número de elementos que quieren obtenerse por página.
page Página que se quiere obtener.
customer Id del cliente.
min_total_limit Los elementos del listado tendrán un total superior a esta cantidad.
max_total_limit Los elementos tendrán un total inferior a esta cantidad.
initial_date Los elementos tendrán una fecha superior a esta.
Con formato yyyy-MM-dd.
end_date Los elementos tendrán una fecha inferior a esta.
Con formato yyyy-MM-dd.
serie Devolverá las facturas pertenecientes a dicha serie de facturación.
El valor de este parametro es el name que se recibe al llamar a /company/serie
description Devolverá las facturas que contenga parte de la descripción.
issued true -> factura emitida
false -> borrador
sort Es una lista con los valores por los que se quiere ordenar, con el formato:
sort=key:order,key:order,key:order
Las key válidas son:
* customer -> Ordenar alfabéticamente cliente.
* total_invoice -> Ordenar por total de factura.
* date -> Ordenar por fecha.
Los order válidos son:
* desc -> Mayor a menor.
* asc -> Menor a mayor.

post


curl --request POST \
  --url https://api.cuentica.com/invoice \
  --data '{"description":"<ADD STRING VALUE>","annotations":"<ADD STRING VALUE>","date":"<ADD STRING VALUE>","serie":"<ADD STRING VALUE>","issued":false,"number":0,"customer":0,"footer":"Configuración del usuario.","irm":"Configuración del usuario.","invoice_lines":[{"quantity":0,"concept":"<ADD STRING VALUE>","amount":0,"discount":0,"tax":0,"surcharge":0,"retention":0}],"charges":[{"date":"<ADD STRING VALUE>","amount":0,"method":"cash","destination_account":0,"origin_account":"<ADD STRING VALUE>","charged":false}]}'


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/invoice")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request.body = "{\"description\":\"<ADD STRING VALUE>\",\"annotations\":\"<ADD STRING VALUE>\",\"date\":\"<ADD STRING VALUE>\",\"serie\":\"<ADD STRING VALUE>\",\"issued\":false,\"number\":0,\"customer\":0,\"footer\":\"Configuración del usuario.\",\"irm\":\"Configuración del usuario.\",\"invoice_lines\":[{\"quantity\":0,\"concept\":\"<ADD STRING VALUE>\",\"amount\":0,\"discount\":0,\"tax\":0,\"surcharge\":0,\"retention\":0}],\"charges\":[{\"date\":\"<ADD STRING VALUE>\",\"amount\":0,\"method\":\"cash\",\"destination_account\":0,\"origin_account\":\"<ADD STRING VALUE>\",\"charged\":false}]}"

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

payload = "{\"description\":\"<ADD STRING VALUE>\",\"annotations\":\"<ADD STRING VALUE>\",\"date\":\"<ADD STRING VALUE>\",\"serie\":\"<ADD STRING VALUE>\",\"issued\":false,\"number\":0,\"customer\":0,\"footer\":\"Configuración del usuario.\",\"irm\":\"Configuración del usuario.\",\"invoice_lines\":[{\"quantity\":0,\"concept\":\"<ADD STRING VALUE>\",\"amount\":0,\"discount\":0,\"tax\":0,\"surcharge\":0,\"retention\":0}],\"charges\":[{\"date\":\"<ADD STRING VALUE>\",\"amount\":0,\"method\":\"cash\",\"destination_account\":0,\"origin_account\":\"<ADD STRING VALUE>\",\"charged\":false}]}"

conn.request("POST", "/invoice", payload)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/invoice",
  "method": "POST",
  "headers": {},
  "processData": false,
  "data": "{\"description\":\"<ADD STRING VALUE>\",\"annotations\":\"<ADD STRING VALUE>\",\"date\":\"<ADD STRING VALUE>\",\"serie\":\"<ADD STRING VALUE>\",\"issued\":false,\"number\":0,\"customer\":0,\"footer\":\"Configuración del usuario.\",\"irm\":\"Configuración del usuario.\",\"invoice_lines\":[{\"quantity\":0,\"concept\":\"<ADD STRING VALUE>\",\"amount\":0,\"discount\":0,\"tax\":0,\"surcharge\":0,\"retention\":0}],\"charges\":[{\"date\":\"<ADD STRING VALUE>\",\"amount\":0,\"method\":\"cash\",\"destination_account\":0,\"origin_account\":\"<ADD STRING VALUE>\",\"charged\":false}]}"
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.post("https://api.cuentica.com/invoice")
  .body("{\"description\":\"<ADD STRING VALUE>\",\"annotations\":\"<ADD STRING VALUE>\",\"date\":\"<ADD STRING VALUE>\",\"serie\":\"<ADD STRING VALUE>\",\"issued\":false,\"number\":0,\"customer\":0,\"footer\":\"Configuración del usuario.\",\"irm\":\"Configuración del usuario.\",\"invoice_lines\":[{\"quantity\":0,\"concept\":\"<ADD STRING VALUE>\",\"amount\":0,\"discount\":0,\"tax\":0,\"surcharge\":0,\"retention\":0}],\"charges\":[{\"date\":\"<ADD STRING VALUE>\",\"amount\":0,\"method\":\"cash\",\"destination_account\":0,\"origin_account\":\"<ADD STRING VALUE>\",\"charged\":false}]}")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/invoice');
$request->setMethod(HTTP_METH_POST);

$request->setBody('{"description":"<ADD STRING VALUE>","annotations":"<ADD STRING VALUE>","date":"<ADD STRING VALUE>","serie":"<ADD STRING VALUE>","issued":false,"number":0,"customer":0,"footer":"Configuración del usuario.","irm":"Configuración del usuario.","invoice_lines":[{"quantity":0,"concept":"<ADD STRING VALUE>","amount":0,"discount":0,"tax":0,"surcharge":0,"retention":0}],"charges":[{"date":"<ADD STRING VALUE>","amount":0,"method":"cash","destination_account":0,"origin_account":"<ADD STRING VALUE>","charged":false}]}');

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "strings"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/invoice"

    payload := strings.NewReader("{\"description\":\"<ADD STRING VALUE>\",\"annotations\":\"<ADD STRING VALUE>\",\"date\":\"<ADD STRING VALUE>\",\"serie\":\"<ADD STRING VALUE>\",\"issued\":false,\"number\":0,\"customer\":0,\"footer\":\"Configuración del usuario.\",\"irm\":\"Configuración del usuario.\",\"invoice_lines\":[{\"quantity\":0,\"concept\":\"<ADD STRING VALUE>\",\"amount\":0,\"discount\":0,\"tax\":0,\"surcharge\":0,\"retention\":0}],\"charges\":[{\"date\":\"<ADD STRING VALUE>\",\"amount\":0,\"method\":\"cash\",\"destination_account\":0,\"origin_account\":\"<ADD STRING VALUE>\",\"charged\":false}]}")

    req, _ := http.NewRequest("POST", url, payload)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Añadir una nueva factura.
  • Parametros obligatorios en la petición:
Nombre Descripción
issued boolean Este parámetro define si es un borrador o una factura emitida.
customer integer Id del cliente al que se emite la factura.
invoice_lines array Lineas de factura
charges array Cobros
Detalle:
La suma de los cobros debe ser igual que el total de la factura.
  • Parametros opcionales en la petición:
Nombre Descripción
description string
annotations string
date string Fecha de facturación
Formato: yyyy-MM-dd
Debe ser superior o igual a la fecha de la ultima factura emitida ese año con la misma serie, si no se envía fecha se usará la fecha de la petición.
serie string Nombre de la serie de facturación, si no se envía se creará en la serie de facturación por defecto.
number integer Número de factura
Si es la primera factura del año y de la serie se cogerá este como el primer numero de factura.
Si ya existe una factura con la misma serie y se envía este parametro la petición fallará si no es el que le correspondería.
footer string Pie de factura por defecto del usuario, que configuró en su panel de administración.
irm string Campo IRM por defecto del usuario para las facturas, que configuró en su panel de administración.

  • Detalle de la respuesta:

Nombre Descripción
business.business_name Este campo solo se devuelve si el tipo de la empresa no es individual
business.name Este campo solo se devuelve cuando el tipo de la empresa es individual
business.surname_1 Este campo solo se devuelve cuando el tipo de la empresa es individual
business.surname_2 Este campo solo se devuelve cuando el tipo de la empresa es individual
charges.origin_account_number Este campo se devuelve dependiendo delmétodoo de pago
charges.origin_account_description Este campo se devuelve dependiendo delmétodoo de pago
invoice_lines.surcharge Este campo se devuelve si la linea de factura tiene recargo

/invoice/:id

get


curl --request GET \
  --url https://api.cuentica.com/invoice/:id


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/invoice/:id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("GET", "/invoice/:id")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/invoice/:id",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.get("https://api.cuentica.com/invoice/:id")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/invoice/:id');
$request->setMethod(HTTP_METH_GET);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/invoice/:id"

    req, _ := http.NewRequest("GET", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Obtener la factura que corresponde con el id pasado como parámetro.

  • Detalle de la respuesta:

Nombre Descripción
business.business_name Este campo solo se devuelve si el tipo de la empresa no es individual
business.name Este campo solo se devuelve cuando el tipo de la empresa es individual
business.surname_1 Este campo solo se devuelve cuando el tipo de la empresa es individual
business.surname_2 Este campo solo se devuelve cuando el tipo de la empresa es individual
charges.origin_account_number Este campo se devuelve dependiendo delmétodoo de pago
charges.origin_account_description Este campo se devuelve dependiendo delmétodoo de pago
invoice_lines.surcharge Este campo se devuelve si la linea de factura tiene recargo

put


curl --request PUT \
  --url https://api.cuentica.com/invoice/:id


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/invoice/:id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("PUT", "/invoice/:id")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/invoice/:id",
  "method": "PUT",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.put("https://api.cuentica.com/invoice/:id")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/invoice/:id');
$request->setMethod(HTTP_METH_PUT);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/invoice/:id"

    req, _ := http.NewRequest("PUT", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Actualizar una factura.
  • Descripción: Adicionalmente a los campos de invoice_lines y de charges detallados en el link de la tabla de añade un nuevo campo opcional id
    Comportamiento esperado de lineas y cobros en la actualización de facturas.
    * Si contiene el campo id se actualizarán los datos de esa linea o cobro.
    * Si no contiene el campo id se creará una nueva linea o cobro.
    * Todos los id’s de lineas y cobros que no estén presentes en el objeto que se recibe como parámetro serán eliminados.
  • Parametros obligatorios en la petición:
Nombre Descripción
issued boolean Este parámetro define si es un borrador o una factura emitida.
customer integer Id del cliente al que se emite la factura.
invoice_lines array Lineas de factura
charges array Cobros
Detalle:
La suma de los cobros debe ser igual que el total de la factura.
  • Parametros opcionales en la petición:
Nombre Descripción
description string
annotations string
date string Fecha de facturación
Formato: yyyy-MM-dd
Debe ser superior o igual a la fecha de la ultima factura emitida ese año con la misma serie, si no se envía fecha se usará la fecha de la petición.
serie string Nombre de la serie de facturación, si no se envía se creará en la serie de facturación por defecto.
number integer Número de factura
Si es la primera factura del año y de la serie se cogerá este como el primer numero de factura.
Si ya existe una factura con la misma serie y se envía este parametro la petición fallará si no es el que le correspondería.
footer string Pie de factura por defecto del usuario, que configuró en su panel de administración.
irm string Campo IRM por defecto del usuario para las facturas, que configuró en su panel de administración.

  • Detalle de la respuesta:

Nombre Descripción
business.business_name Este campo solo se devuelve si el tipo de la empresa no es individual
business.name Este campo solo se devuelve cuando el tipo de la empresa es individual
business.surname_1 Este campo solo se devuelve cuando el tipo de la empresa es individual
business.surname_2 Este campo solo se devuelve cuando el tipo de la empresa es individual
charges.origin_account_number Este campo se devuelve dependiendo delmétodoo de pago
charges.origin_account_description Este campo se devuelve dependiendo delmétodoo de pago
invoice_lines.surcharge Este campo se devuelve si la linea de factura tiene recargo

delete


curl --request DELETE \
  --url https://api.cuentica.com/invoice/:id


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/invoice/:id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("DELETE", "/invoice/:id")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/invoice/:id",
  "method": "DELETE",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.delete("https://api.cuentica.com/invoice/:id")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/invoice/:id');
$request->setMethod(HTTP_METH_DELETE);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/invoice/:id"

    req, _ := http.NewRequest("DELETE", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Eliminar una factura.

  • Respuesta: Status 200

/invoice/:id/email

post


curl --request POST \
  --url https://api.cuentica.com/invoice/:id/email


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/invoice/:id/email")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("POST", "/invoice/:id/email")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/invoice/:id/email",
  "method": "POST",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.post("https://api.cuentica.com/invoice/:id/email")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/invoice/:id/email');
$request->setMethod(HTTP_METH_POST);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/invoice/:id/email"

    req, _ := http.NewRequest("POST", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Enviar un email con la factura.
  • Parametros obligatorios en la petición:
Nombre Descripción
to array Destinatarios del correo.
reply_to string Dirección a la que queremos que contesten.
subject string Asunto del correo.
body string Cuerpo del correo.
  • Parametros opcionales en la petición:
Nombre Descripción
cc array Con copia.
cc_me boolean Enviarme copia del correo.
attachments array Archivos adjuntos
Detalle:
Como máximo pueden adjuntarse 5 archivos.
  • Respuesta: Status 200

/invoice/:id/pdf

get


curl --request GET \
  --url https://api.cuentica.com/invoice/:id/pdf


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/invoice/:id/pdf")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("GET", "/invoice/:id/pdf")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/invoice/:id/pdf",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.get("https://api.cuentica.com/invoice/:id/pdf")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/invoice/:id/pdf');
$request->setMethod(HTTP_METH_GET);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/invoice/:id/pdf"

    req, _ := http.NewRequest("GET", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Descargar el archivo PDF de una factura, con el template que tiene la empresa en su configuración.

  • Respuesta: Binario Base64

Gasto

/expense

get


curl --request GET \
  --url https://api.cuentica.com/expense


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/expense")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("GET", "/expense")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/expense",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.get("https://api.cuentica.com/expense")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/expense');
$request->setMethod(HTTP_METH_GET);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/expense"

    req, _ := http.NewRequest("GET", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Obtener lista de gastos.
  • Parámetros opcionales en la URL:
Nombre Descripción
page_size Número de elementos que quieren obtenerse por página.
page Página que se quiere obtener.
provider Id del proveedor.
min_total_limit Los elementos del listado tendrán un total superior a esta cantidad.
max_total_limit Los elementos tendrán un total inferior a esta cantidad.
initial_date Los elementos tendrán una fecha superior a esta.
Con formato yyyy-MM-dd.
end_date Los elementos tendrán una fecha inferior a esta.
Con formato yyyy-MM-dd.
expense_type Devolverá los gastos con este tipo de gasto.
investment_type Devolverá los gastos con este tipo de inversión.
draft true -> Mostrar borradores
false -> Mostrar gastos confirmados
sort Es una lista con los valores por los que se quiere ordenar, con el formato:
sort=key:order,key:order,key:order
Las key válidas son:
* provider -> Ordenar alfabéticamente cliente.
* total_expense -> Ordenar por total del gasto.
* date -> Ordenar por fecha.
Los order válidos son:
* desc -> Mayor a menor.
* asc -> Menor a mayor.

post


curl --request POST \
  --url https://api.cuentica.com/expense \
  --data '{"date":"<ADD STRING VALUE>","draft":false,"provider":0,"document_type":"invoice","document_number":"<ADD STRING VALUE>","annotations":"<ADD STRING VALUE>","expense_lines":[{"description":"<ADD STRING VALUE>","base":0,"tax":0,"surcharge":0,"retention":0,"imputation":0,"investment":false,"expense_type":"<ADD STRING VALUE>"}],"payments":[{"date":"<ADD STRING VALUE>","amount":0,"payment_method":"cash","paid":false,"origin_account":0,"destination_account":"<ADD STRING VALUE>"}]}'


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/expense")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request.body = "{\"date\":\"<ADD STRING VALUE>\",\"draft\":false,\"provider\":0,\"document_type\":\"invoice\",\"document_number\":\"<ADD STRING VALUE>\",\"annotations\":\"<ADD STRING VALUE>\",\"expense_lines\":[{\"description\":\"<ADD STRING VALUE>\",\"base\":0,\"tax\":0,\"surcharge\":0,\"retention\":0,\"imputation\":0,\"investment\":false,\"expense_type\":\"<ADD STRING VALUE>\"}],\"payments\":[{\"date\":\"<ADD STRING VALUE>\",\"amount\":0,\"payment_method\":\"cash\",\"paid\":false,\"origin_account\":0,\"destination_account\":\"<ADD STRING VALUE>\"}]}"

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

payload = "{\"date\":\"<ADD STRING VALUE>\",\"draft\":false,\"provider\":0,\"document_type\":\"invoice\",\"document_number\":\"<ADD STRING VALUE>\",\"annotations\":\"<ADD STRING VALUE>\",\"expense_lines\":[{\"description\":\"<ADD STRING VALUE>\",\"base\":0,\"tax\":0,\"surcharge\":0,\"retention\":0,\"imputation\":0,\"investment\":false,\"expense_type\":\"<ADD STRING VALUE>\"}],\"payments\":[{\"date\":\"<ADD STRING VALUE>\",\"amount\":0,\"payment_method\":\"cash\",\"paid\":false,\"origin_account\":0,\"destination_account\":\"<ADD STRING VALUE>\"}]}"

conn.request("POST", "/expense", payload)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/expense",
  "method": "POST",
  "headers": {},
  "processData": false,
  "data": "{\"date\":\"<ADD STRING VALUE>\",\"draft\":false,\"provider\":0,\"document_type\":\"invoice\",\"document_number\":\"<ADD STRING VALUE>\",\"annotations\":\"<ADD STRING VALUE>\",\"expense_lines\":[{\"description\":\"<ADD STRING VALUE>\",\"base\":0,\"tax\":0,\"surcharge\":0,\"retention\":0,\"imputation\":0,\"investment\":false,\"expense_type\":\"<ADD STRING VALUE>\"}],\"payments\":[{\"date\":\"<ADD STRING VALUE>\",\"amount\":0,\"payment_method\":\"cash\",\"paid\":false,\"origin_account\":0,\"destination_account\":\"<ADD STRING VALUE>\"}]}"
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.post("https://api.cuentica.com/expense")
  .body("{\"date\":\"<ADD STRING VALUE>\",\"draft\":false,\"provider\":0,\"document_type\":\"invoice\",\"document_number\":\"<ADD STRING VALUE>\",\"annotations\":\"<ADD STRING VALUE>\",\"expense_lines\":[{\"description\":\"<ADD STRING VALUE>\",\"base\":0,\"tax\":0,\"surcharge\":0,\"retention\":0,\"imputation\":0,\"investment\":false,\"expense_type\":\"<ADD STRING VALUE>\"}],\"payments\":[{\"date\":\"<ADD STRING VALUE>\",\"amount\":0,\"payment_method\":\"cash\",\"paid\":false,\"origin_account\":0,\"destination_account\":\"<ADD STRING VALUE>\"}]}")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/expense');
$request->setMethod(HTTP_METH_POST);

$request->setBody('{"date":"<ADD STRING VALUE>","draft":false,"provider":0,"document_type":"invoice","document_number":"<ADD STRING VALUE>","annotations":"<ADD STRING VALUE>","expense_lines":[{"description":"<ADD STRING VALUE>","base":0,"tax":0,"surcharge":0,"retention":0,"imputation":0,"investment":false,"expense_type":"<ADD STRING VALUE>"}],"payments":[{"date":"<ADD STRING VALUE>","amount":0,"payment_method":"cash","paid":false,"origin_account":0,"destination_account":"<ADD STRING VALUE>"}]}');

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "strings"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/expense"

    payload := strings.NewReader("{\"date\":\"<ADD STRING VALUE>\",\"draft\":false,\"provider\":0,\"document_type\":\"invoice\",\"document_number\":\"<ADD STRING VALUE>\",\"annotations\":\"<ADD STRING VALUE>\",\"expense_lines\":[{\"description\":\"<ADD STRING VALUE>\",\"base\":0,\"tax\":0,\"surcharge\":0,\"retention\":0,\"imputation\":0,\"investment\":false,\"expense_type\":\"<ADD STRING VALUE>\"}],\"payments\":[{\"date\":\"<ADD STRING VALUE>\",\"amount\":0,\"payment_method\":\"cash\",\"paid\":false,\"origin_account\":0,\"destination_account\":\"<ADD STRING VALUE>\"}]}")

    req, _ := http.NewRequest("POST", url, payload)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Añadir un nuevo gasto.
  • Parametros obligatorios en la petición:
Nombre Descripción
date string Con formato -> yyyy-MM-dd
draft boolean
provider integer
document_type string Valores aceptados:
invoice, ticket

Detalle:
Los documentos pueden ser facturas o ticket.
expense_lines array Lineas de gasto
payments array Pagos
  • Parametros opcionales en la petición:
Nombre Descripción
document_number string
annotations string
attachment object Archivo adjunto

/expense/:id

get


curl --request GET \
  --url https://api.cuentica.com/expense/:id


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/expense/:id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("GET", "/expense/:id")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/expense/:id",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.get("https://api.cuentica.com/expense/:id")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/expense/:id');
$request->setMethod(HTTP_METH_GET);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/expense/:id"

    req, _ := http.NewRequest("GET", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Obtener el gasto que corresponde con el id pasado como parámetro.

put


curl --request PUT \
  --url https://api.cuentica.com/expense/:id


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/expense/:id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("PUT", "/expense/:id")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/expense/:id",
  "method": "PUT",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.put("https://api.cuentica.com/expense/:id")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/expense/:id');
$request->setMethod(HTTP_METH_PUT);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/expense/:id"

    req, _ := http.NewRequest("PUT", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Actualizar una gasto.
  • Descripción: Adicionalmente a los campos de expense_lines y de payments detallados en el link de la tabla de añade un nuevo campo opcional id
    Comportamiento esperado de lineas y pagos en la actualización de facturas.
    * Si contiene el campo id se actualizarán los datos de esa linea o cobro.
    * Si no contiene el campo id se creará una nueva linea o cobro.
    * Todos los id’s de lineas y pagos que no estén presentes en el objeto que se recibe como parámetro serán eliminados.
  • Parametros obligatorios en la petición:
Nombre Descripción
date string Con formato -> yyyy-MM-dd
draft boolean
provider integer
document_type string Valores aceptados:
invoice, ticket

Detalle:
Los documentos pueden ser facturas o ticket.
expense_lines array Lineas de gasto
payments array Pagos
  • Parametros opcionales en la petición:
Nombre Descripción
document_number string
annotations string
attachment object Archivo adjunto

delete


curl --request DELETE \
  --url https://api.cuentica.com/expense/:id


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/expense/:id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("DELETE", "/expense/:id")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/expense/:id",
  "method": "DELETE",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.delete("https://api.cuentica.com/expense/:id")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/expense/:id');
$request->setMethod(HTTP_METH_DELETE);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/expense/:id"

    req, _ := http.NewRequest("DELETE", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Eliminar un gasto

  • Respuesta: Status 200

/expense/:id/attachment

get


curl --request GET \
  --url https://api.cuentica.com/expense/:id/attachment


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/expense/:id/attachment")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("GET", "/expense/:id/attachment")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/expense/:id/attachment",
  "method": "GET",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.get("https://api.cuentica.com/expense/:id/attachment")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/expense/:id/attachment');
$request->setMethod(HTTP_METH_GET);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/expense/:id/attachment"

    req, _ := http.NewRequest("GET", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Obtener el adjunto de un gasto en Base64

delete


curl --request DELETE \
  --url https://api.cuentica.com/expense/:id/attachment


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/expense/:id/attachment")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("DELETE", "/expense/:id/attachment")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/expense/:id/attachment",
  "method": "DELETE",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.delete("https://api.cuentica.com/expense/:id/attachment")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/expense/:id/attachment');
$request->setMethod(HTTP_METH_DELETE);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/expense/:id/attachment"

    req, _ := http.NewRequest("DELETE", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Eliminar el adjunto de un gasto.

  • Respuesta: Status 200

put


curl --request PUT \
  --url https://api.cuentica.com/expense/:id/attachment


require 'uri'
require 'net/http'

url = URI("https://api.cuentica.com/expense/:id/attachment")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body


import http.client

conn = http.client.HTTPSConnection("api.cuentica.com")

conn.request("PUT", "/expense/:id/attachment")

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))


var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.cuentica.com/expense/:id/attachment",
  "method": "PUT",
  "headers": {}
}

$.ajax(settings).done(function (response) {
  console.log(response);
});


HttpResponse<String> response = Unirest.put("https://api.cuentica.com/expense/:id/attachment")
  .asString();


<?php

$request = new HttpRequest();
$request->setUrl('https://api.cuentica.com/expense/:id/attachment');
$request->setMethod(HTTP_METH_PUT);

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}


package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.cuentica.com/expense/:id/attachment"

    req, _ := http.NewRequest("PUT", url, nil)

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

  • Resumen: Actualizar el adjunto de un gasto.
  • Parametros obligatorios en la petición:
Nombre Descripción
filename string Nombre del archivo que tendrá cuando se envíe.
data string El fichero en Base64.

Subentidades

Linea de factura

Descripción del objeto: Volver

Nombre del campo Descripción Obligatorio
quantity
double
true
concept
string
No puede ser un texto vacío. true
amount
double
true
discount
double
No puede ser negativo true
tax
double
Valores aceptados:
0.0, 3.0, 4.0, 7.0, 9.5, 10.0, 12.0, 13.5, 20.0, 21.0

Detalle:
IVA: 0.0, 4.0, 10.0, 12.0, 21.0
IGIC: 0.0, 3.0, 7.0, 9.5, 13.5, 20.0
true
surcharge
double
En caso de que el cliente al que se factura tenga activado el recargo de equivalencia y no se adjunte este valor se guardará el valor por defecto.
Si el cliente no tiene activado el recargo de equivalencia el parámetro no debe incluirse en la petición.
false
retention
double
No puede ser negativo true

Cobro de factura

Descripción del objeto: Volver

Nombre del campo Descripción Obligatorio
date
string
Fecha de cobro
Con formato -> yyyy-MM-dd
true
amount
double
true
method
string
Valores aceptados:
cash, receipt, wire_transfer, card, promissory_note, other

Detalle:
Método de cobro con el que se realiza este cobro.
true
destination_account
long
Id de la cuenta del usuario a la que se va a ingresar el cobro.
true
origin_account
string
Número de cuenta del cliente a la que se va a cobrar el importe del cobro.
Es obligatorio si el método de cobro es recibo.
false
charged
boolean
El cobro ha sido realizado. true

Linea de gasto

Descripción del objeto: Volver

Nombre del campo Descripción Obligatorio
description
string
true
base
double
true
tax
double
true
surcharge
double
false
retention
double
true
imputation
double
true
investment
boolean
true
expense_type
string
Valores aceptados
Detalle:
Este campo es obligatorio si investment es false.
false
investment_data
object
Datos de la inversion
Detalle:
Este campo solo es obligatorio el campo investment es true.
false

Pago de gasto

Descripción del objeto: Volver

Nombre del campo Descripción Obligatorio
date
string
Con formato -> yyyy-MM-dd true
amount
double
true
payment_method
string
Valores aceptados:
cash, receipt, wire_transfer, card, promissory_note, other

Detalle:
Método de pago con el que se realiza este gasto.
true
paid
boolean
true
origin_account
long
Id de la cuenta de la empresa con la que se va a realizar el pago. true
destination_account
string
La cuenta del proveedor al que vamos a pagarle. false

Detalles de inversion

Descripción del objeto: Volver

Nombre del campo Descripción Obligatorio
investment_type
string
Valores aceptados true
value
double
true
start_date
string
Con formato -> yyyy-MM-dd true
end_date
string
Con formato -> yyyy-MM-dd true
duration
integer
true
used
boolean
true

Adjunto

Descripción del objeto: Volver

Nombre del campo Descripción Obligatorio
filename
string
Nombre del archivo que tendrá cuando se envíe. true
data
string
El fichero en Base64. true

Regiones

Volver

Listado de regiones aceptadas para España

Para facilitar un poco este campo, la región se normaliza al procesarse, pasando todo a minusculas y eliminando acentos.

Álava = alava = áLÁVá

Álava
Albacete
Alicante
Almería
Asturias
Ávila
Badajoz
Barcelona
Burgos
Cáceres
Cádiz
Cantabria
Castellón
Ceuta
Ciudad Real
Córdoba
Cuenca
Gerona
Granada
Guadalajara
Guipúzcoa
Huelva
Huesca
Islas Baleares
Jaén
La Coruña
La Rioja
Las Palmas
León
Lérida
Lugo
Madrid
Málaga
Melilla
Murcia
Navarra
Orense
Palencia
Pontevedra
Salamanca
Segovia
Sevilla
Soria
Tarragona
Santa Cruz de Tenerife
Teruel
Toledo
Valencia
Valladolid
Vizcaya
Zamora
Zaragoza

Tipos de gasto

Volver

Código Significado
600 Compras de productos para vender
601 Compras de materias primas
602 Compras de otros aprovisionamientos
607 Trabajos realizados otras empresas
6210001 Alquiler de inmuebles y locales
6210002 Alquiler de bienes y equipos
6210003 Otros alquileres
622 Reparaciones, mantenimiento y limpieza
6230001 Asesoria fiscal y contable
6230002 Asesoria Laboral
6230005 Otros servicios profesionales
624 Gastos de transporte
625 Primas de seguro
626 Comisiones y gastos bancarios
627 Gastos de publicidad y propaganda
6280003 Gasolinas / Combustibles
6280004 Electricidad
6280005 Agua
6280006 Telefonía
6280007 Otros suministros
6290001 Papelería y material de oficina
6290002 Restaurante y hostelería
6290003 Gastos de viaje y locomoción
6290004 Hosting y servicios web
6290005 Formación y cursos
6290006 Otros servicios externos
6310001 Impuestos y tasas municipales
6310002 Impuestos y tasas de la comunidad autonoma
6400000 Nóminas de socios
6400001 Nóminas de trabajadores
6420000 Seguridad Social autónomos
6420001 Seguridad Social régimen general
662 Intereses de préstamos
669 Otros gastos financieros
678 Gastos extraordinarios
680 Amortización de Invers. Inmateriales
681 Amortización de Invers. Materiales
682 Amortización de Invers. Inmobiliarias
699 Gastos no deducibles
520 Devolución principal de préstamo
475 Impuestos trimestrales hacienda estatal

Tipos de inversión

Volver

Código Significado
20 Inmovilizaciones intangibles
200 Investigación
201 Desarrollo
202 Concesiones administrativas
203 Propiedad industrial
205 Derechos de traspaso
206 Aplicaciones informáticas
21 Inmovilizaciones materiales
210 Terrenos y bienes naturales
211 Construcciones
212 Instalaciones técnicas
213 Maquinaria
214 Utillaje Y herramientas
215 Otras instalaciones
216 Mobiliario
217 Equipos para procesos de información
218 Elementos de transporte
219 Otro inmovilizado material
250 Otras inversiones financieras a largo plazo
260 Fianzas y depositos constituidos a largo plazo

Errores

Código de error Significado
400 Bad Request
La petición no es correcta, revisa los parametros que nos has enviado y sus valores
403 Forbidden
No tienes permisos para ejecutar la petición que has hecho.
404 Not Found
No podemos encontrar el recurso que nos has pedido.
429 Too many request
Has excedido el numero de peticiones por bloque permitidas, deberas esperar hasta que se renueven.
500 Internal Server Error
Parece que algo ha ido mal en el servidor, estamos en ello.