Gastos

Conjunto de llamadas que permiten realizar acciones sobre los gastos de una cuenta de FacturaDirecta.

Recurso Descripción
GET /api/expenses.xml Devuelve un listado de gastos
GET /api/expenses/#{id}.xml Devuelve información de un gasto existente identificado por el identificador #{id}
PUT /api/expenses/#{id}.xml Modifica los datos de un gasto existente identificado por el identificador #{id}
POST /api/expenses.xml Permite crear un nuevo gasto
DELETE /api/expenses/#{id}.xml Elimina un gasto existente identificado por el identificador #{id}
PUT /api/expenses.xml Devuelve una plantilla de la estructura en xml para poder utilizarla para crear un nuevo gasto

GET /api/expenses.xml

Obtener la lista de gastos

curl -u 03334b0a261a2c355ae2db022a963d8e:x https://[ACCOUNT_NAME].facturadirecta.com/api/expenses.xml

Opciones de paginación de lista y límites de elementos

Por defecto la llamada devuelve los 100 primeros elementos. Para obtener la lista de más elementos o bien paginar las llamadas deben utilizarse los siguientes parámetros:

Parámetros Descripción
limit Indica el número de entradas que devolverá la llamada (por defecto son 100 y se pueden listar hasta un máximo de 250 entradas en una sola llamda)
start Indica la posición del primer elemento que se devolverá en la llamada (por defecto es el elemento de la posición 0)

Opciones de filtrado de gastos

Para focalizar más la consulta de gastos, puedes utilizar las siguientes opciones de filtrado:

Parámetros Descripción
provider Permite obtener solo los gastos de un proveedor (especificado por su ID)
status (parámetro múltiple): Permite obtener los gastos que se encuentren en cualquier estado indicado en este parámetro. Opciones: pastDue (Impagado), open (En curso), closed (Pagado)
fromDate Permite obtener los gastos desde la fecha indicada (en formato AAAAMMDD)
toDate Permite obtener los gastos hasta la fecha indicada (en formato AAAAMMDD)
category Permite obtener los gastos con la categoría indicada (por ID de la categoría)
categoryName Permite obtener los gastos con la categoría indicada (por nombre de la categoría)
tag Permite obtener los gastos que tengan asignada la etiqueta con el texto indicado (Se puede incluir más de un parámetro tag en la petición)
tagCond Cuando la consulta contiene más de un parámetro tag indica si la consulta mostrará los gastos que tengan todas las etiquetas indicadas (valor and del parámetro) o cualquiera de ellas (valor or del parámetro)
ownerEmail Permite obtener sólo los gastos propiedad del usuario con el email indicado
ivaCaja_ES Esta opción de filtrado está disponible sólo para cuentas españolas y permite obtener gastos recibidos con o sin criterio de caja. Opciones: false (gastos sin criterio de caja), true (gastos con criterio de caja)

Ejemplos

curl -u 03334b0a261a2c355ae2db022a963d8e:x https://[ACCOUNT_NAME].facturadirecta.com/api/expenses.xml?fromDate=20110101\&toDate=20110331

curl -u 03334b0a261a2c355ae2db022a963d8e:x https://[ACCOUNT_NAME].facturadirecta.com/api/expenses.xml?fromDate=20110101\&toDate=20110331\&tag=Etiqueta 1\&tag=Etiqueta 2\&tagCond=and

curl -u 03334b0a261a2c355ae2db022a963d8e:x https://[ACCOUNT_NAME].facturadirecta.com/api/expenses.xml?fromDate=20110101\&toDate=20110331\&tag=Etiqueta 1\&tag=Etiqueta 2\&tagCond=or

GET /api/expenses/#{id}.xml

Devuelve un gasto existente

 Ejemplo para obtener un gasto con id=10

curl -u 03334b0a261a2c355ae2db022a963d8e:x https://[ACCOUNT_NAME].facturadirecta.com/api/expenses/10.xml

PUT /api/expenses/#{id}.xml

Modifica un gasto existente

Ejemplo para actualizar un gasto con id=10. Prácticamente todos los elementos son opcionales, y solo aquellos que estén presentes en el xml serán actualizados.

curl -u 03334b0a261a2c355ae2db022a963d8e:x -X PUT -H 'Accept: application/xml' -H 'Content-Type: application/xml'
-d "<?xml version='1.0' encoding='UTF-8'?>
<expense>
<id>10</id>
<provider>
<id></id>
<name>Nuevo proveedor</name>
<taxCode>B12345678</taxCode>
</provider>
<expenseDate>20100925</expenseDate>
<expenseNumber>X-20100925</expenseNumber>
<ivaCaja_ES>false</ivaCaja_ES>
<nonTaxDeductible>false</nonTaxDeductible>
<currency>EUR</currency>
<netTotal>100.00</netTotal>
<tax1>
<name>IVA</name>
<base>100.00</base>
<rate>18.00</rate>
<total>18.00</total>
</tax1>
<tax2>
<name>IRPF</name>
<base>100.00</base>
<rate>-15.00</rate>
<total>-15.00</total>
</tax2>
<grossTotal>103.00</grossTotal>
<notes>Una prueba con los gastos</notes>
<dueDate>20100925</dueDate>
<paymentDate></paymentDate>
</expense>"
https://[ACCOUNT_NAME].facturadirecta.com/api/expenses/10.xml

POST /api/expenses.xml

Crea un nuevo gasto

curl -u 03334b0a261a2c355ae2db022a963d8e:x -X POST -H 'Accept: application/xml' -H 'Content-Type: application/xml'
-d "<?xml version='1.0' encoding='UTF-8'?>
<expense>
    <id></id>
    <provider>
    <id></id>
    <name>Nuevo proveedor</name>
    <taxCode>B12345678</taxCode>
    </provider>
    <expenseDate>20100925</expenseDate>
    <expenseNumber>X-20100925</expenseNumber>
    <nonTaxDeductible>false</nonTaxDeductible>
    <currency>EUR</currency>
    <tags>
            <globalTag><![CDATA[Etiqueta global 1]]></globalTag>
            <localTag><![CDATA[Etiqueta local 1]]></localTag>
            <globalTag><![CDATA[Global 2]]></globalTag>
    </tags>
    <netTotal>100.00</netTotal>
    <tax1>
        <name>IVA</name>
        <base>100.00</base>
        <rate>18.00</rate>
        <total>18.00</total>
    </tax1>
    <tax2>
        <name>IRPF</name>
        <base>100.00</base>
        <rate>-15.00</rate>
        <total>-15.00</total>
    </tax2>
    <grossTotal>103.00</grossTotal>
    <notes>Una prueba con los gastos</notes>
    <dueDate>20100925</dueDate>
    <paymentDate></paymentDate>
</expense>
"
https://[ACCOUNT_NAME].facturadirecta.com/api/expenses.xml

IVA de caja en cuentas españolas

Se puede indicar que un gasto se crea con o sin IVA de caja utilizando el elemento ivaCaja_ES. Si dicho elemento no está presente el gasto se creará con el criterio de caja según el último gasto creado para el mismo proveedor, si es el primer gasto para dicho proveedor se creará sin la marca de criterio de caja para el IVA.

DELETE /api/expenses/#{id}.xml

Elimina un gasto existente

Ejemplo para eliminar un gasto con id=10

curl -u 03334b0a261a2c355ae2db022a963d8e:x -X DELETE https://[ACCOUNT_NAME].facturadirecta.com/api/expenses/10.xml

PUT /api/expenses.xml

Devuelve la plantilla xml de nuevo gasto

curl -u 03334b0a261a2c355ae2db022a963d8e:x -X PUT https://[ACCOUNT_NAME].facturadirecta.com/api/expenses.xml