API

Integra tus aplicaciones

El API de Infinanza está basado en REST (Representational State Transfer) que facilita la integración entre aplicaciones haciendo uso de todas las ventajas que ofrece el protocolo HTTP.

URL Base

Todas las peticiones comienzan con la siguiente URL:

https://www.infinanza.com/api/v2

Autenticación

El API de Infinanza utiliza autenticación por token. Puedes administrar tus tokens por la interfaz Web, ingresando a Mi Cuenta -> API Tokens. Se recomienda crear un token independiente para cada una de las aplicaciones que vayas a conectar a Infinanza.

Para autenticar las peticiones debes agregar el HTTP header Authorization:

Authorization: Token token=<api_token>

Por ejemplo, si estás en un sistema Linux o Mac OS X, puedes utilizar el siguiente comando para listar los ingresos:

> curl -i -H "Authorization: Token token=api_token" https://www.infinanza.com/api/v1/incomes

En este ejemplo -H "Authorization: Token token=api_token" está agregando la autenticación a la petición.

Códigos de Respuesta

Los siguientes son posibles códigos de respuesta HTTP/S que puede generar el sistema:

Código Nombre Descriptión
200 OK La petición fue exitosa y la información solicitada se encuentra en la respuesta
201 Created La petición fue exitosa y el recurso fue creado
204 No Content La petición fue exitosa
400 Bad Request La petición no es válida
401 Unauthorized No autorizado para hacer la petición
404 Not Found El recurso no fue encontrado
422 Unprocessable Entity Se encontró algún error de validación en los datos.
500 Server Error Oooppss, nuestro error, disculpas de antemano!

Clientes

Listar Clientes

GET /customers

Retorna el listado de clientes. Puedes controlar la página y el número de registros por página con los parámetros per_page y page. Por defecto el número de registros por página es 50.

GET /customers?per_page=10&page=3

Ejemplo

El siguiente comando lista los primeros 50 clientes:

$ curl -i -H "Authorization: Token token=api_token" https://www.infinanza.com/api/v2/customers

Resultado

Si todo sale bien, se recibe un código 200 OK con los clientes en el cuerpo en formato JSON como se muestra a continuación:

{ "page": 1,
  "per_page": 50,
  "total_records": 1000,
  "records": [
    {
      "id": 143,
      "name": "Cliente 1",
      "national_id": "8744677373",
      "address": "Av Boulevard 23455",
      "email": "[email protected]",
      "created_at": "2013-12-13T14:58:29.095Z",
      "updated_at": "2013-12-13T14:58:29.095Z"
    }, {
      "id": 144,
      "name": "Cliente 2",
      "national_id": "73822922",
      "address": "Calle Prado Largo 2344 Of 204"
      "email": "[email protected]",
      "created_at": "2013-12-13T14:58:29.095Z",
      "updated_at": "2013-12-13T14:58:29.095Z"
    }, ...
  ]
}

Cada cliente tiene las siguientes llaves:

  • id: El id del clientes.
  • name: El nombre del cliente.
  • national_id: El número de identificación nacional del cliente.
  • address: La dirección del cliente.
  • email: El email del cliente.
  • national_id: El número de identificación nacional del cliente.
  • created_at: La fecha en la que fue creado el cliente.
  • updated_at: Última fecha de actualización.

Crear Cliente

POST /customers

Se debe crear un JSON con los siguientes parámetros:

  • name: El nombre del cliente.
  • national_id: El número de identificación nacional del cliente.
  • address: La dirección del cliente.
  • email: El email del cliente.
  • phone: El teléfono del cliente.

Ejemplo

El siguiente comando crea un ingreso por $13,000 el día 13 de Diciembre de 2013:

$ curl -i -X POST -H "Authorization: Token token=api_token" -d '{ "customer": {"name": "Nuevo Cliente", "national_id": "003334667", "address": "Av Boulevard 75 384782", "email": "[email protected]", "phone": "1234567"} }' https://www.infinanza.com/api/v2/customers

Resultado

Si todo sale bien, se recibe un código 201 Created con la información completa del cliente en formato JSON.

Ingresos

Listar Ingresos

GET /incomes

Retorna el listado de ingresos ordenados por fecha (el más recientes primero). Puedes controlar la página y el número de registros por página con los parámetros per_page y page. Por defecto el número de registros por página es 50.

GET /incomes?per_page=10&page=3

Ejemplo

El siguiente comando lista los últimos 50 ingresos creados:

$ curl -i -H "Authorization: Token token=api_token" https://www.infinanza.com/api/v2/incomes

Resultado

Si todo sale bien, se recibe un código 200 OK con los ingresos en el cuerpo en formato JSON como se muestra a continuación:

{ "page": 1,
  "per_page": 50,
  "total_records": 1000,
  "records": [
    {
      "id": 143,
      "type": "income",
      "date": "2013-12-12",
      "concept": "Saldo Inicial",
      "amount": "13200",
      "excluded": false,
      "user_id": 45,
      "api_key_id": null,
      "created_at": "2013-12-13T14:58:29.095Z",
      "updated_at": "2013-12-13T14:58:29.095Z"
    }, {
      "id": 144,
      "type": "income",
      "date": "2013-12-11",
      "concept": "Square Inc",
      "amount": "2200",
      "excluded": false,
      "user_id": 45,
      "api_key_id": null,
      "created_at": "2013-12-13T14:58:29.095Z",
      "updated_at": "2013-12-13T14:58:29.095Z"
    }, ...
  ]
}

Todos los ingresos tienen las siguientes llaves:

  • id: El id del ingreso.
  • type: El tipo de transacción. Siempre retorna income.
  • date: La fecha del ingreso.
  • concept: El conceptor del ingreso.
  • amount: El valor del ingreso.
  • excluded: true si la transacción está excluída de los reportes, false de lo contrario.
  • user_id: El id del usuario que creó el ingreso. Null si el ingreso fue creado por API.
  • api_key_id: El id del API Token que creó el ingreso. Null si el ingreso fue creado por un usuario.
  • created_at: La fecha en la que fue creado el ingreso.
  • updated_at: Última fecha de actualización.

Mostrar Ingreso

GET /incomes/{id}

Donde {id} es el id del ingreso que se quiere ver.

Ejemplo

El siguiente comando muestra la información del ingreso 45:

$ curl -i -H "Authorization: Token token=api_token" https://www.infinanza.com/api/v2/incomes/45

Resultado

Si todo sale bien, se recibe un código 200 OK con la información del ingreso:

{
  "id": 45,
  "type": "income",
  "date": "2013-12-12",
  "concept": "Saldo Inicial",
  "amount": "13200",
  "excluded": false,
  "user_id": 45,
  "api_key_id": null,
  "created_at": "2013-12-13T14:58:29.095Z",
  "updated_at": "2013-12-13T14:58:29.095Z"
}

Todas los ingresos tienen las siguientes llaves:

  • id: El id del ingreso.
  • type: El tipo de transacción. En este caso siempre retorna (income).
  • date: La fecha del ingreso.
  • concept: El conceptor del ingreso.
  • amount: El valor del ingreso.
  • excluded: true si el ingreso está excluído de los reportes, false de lo contrario.
  • user_id: El id del usuario que creó el ingreso. Null si el ingreso fue creado por API.
  • api_key_id: El id del API Token que creó el ingreso. Null si el ingreso fue creado por un usuario.
  • created_at: La fecha en la que fue creado el ingreso.
  • updated_at: Última fecha de actualización.

Crear Ingreso

POST /incomes

Se debe crear un JSON con los siguientes parámetros:

  • date: La fecha del ingreso en formato yyyy-mm-dd (p.e. 2013-12-18)
  • concept: El concepto del ingreso.
  • amount: El valor del ingreso (p.e. 1500, 13250.50)
  • excluded: true si el ingreso se debe excluir de los reportes, false de lo contrario.

Ejemplo

El siguiente comando crea un ingreso por $13,000 el día 13 de Diciembre de 2013:

$ curl -i -X POST -H "Authorization: Token token=api_token" -d '{ "date", "2013-12-13", "concept": "Ingreso de prueba", "amount": 13000, "excluded": false }' https://www.infinanza.com/api/v2/incomes

Resultado

Si todo sale bien, se recibe un código 201 Created con la información completa del ingreso en formato JSON.

Modificar Ingreso

PATCH /incomes/{id}

Donde {id} se debe reemplazar con el id del ingreso que se quiere actualizar. En el cuerpo de la petición se debe enviar un JSON con los campos que quieras actualizar (sólo se actualizarán los campos que envíes):

  • date: La fecha del ingreso en formato yyyy-mm-dd (p.e. 2013-12-18)
  • concept: El concepto del ingreso.
  • amount: El valor del ingreso (p.e. 1500, 13250.50)
  • excluded: true si el ingreso está excluído de los reportes, false de lo contrario.

Ejemplo

El siguiente comando actualiza el ingreso con id 24:

$ curl -i -X PATCH -H "Authorization: Token token=api_token" -d '{ date", "2013-12-13", "concept": "Ingreso de prueba", "amount": 13000, "excluded": false }' https://www.infinanza.com/api/v2/incomes/24

Resultado

Si todo sale bien, se recibe un código 204 No Content.

Eliminar Ingreso

DELETE /incomes/{id}

Donde {id} se debe reemplazar con el id del ingreso que se quiere eliminar. El cuerpo de la petición debe ir vacío.

Ejemplo

El siguiente comando elimina el ingreso con id 24:

$ curl -i -X DELETE -H "Authorization: Token token=api_token" https://www.infinanza.com/api/v2/incomes/24

Resultado

Si todo sale bien, se recibe un código 204 No Content.

Egresos

Listar Egresos

GET /expenses

Retorna el listado de egresos ordenados por fecha (el más recientes primero). Puedes controlar la página y el número de registros por página con los parámetros per_page y page. Por defecto el número de registros por página es 50.

GET /expenses?per_page=10&page=3

Ejemplo

El siguiente comando lista los últimos 50 egresos creados:

$ curl -i -H "Authorization: Token token=api_token" https://www.infinanza.com/api/v2/expenses

Resultado

Si todo sale bien, se recibe un código 200 OK con los egresos en el cuerpo en formato JSON como se muestra a continuación:

{ "page": 1,
  "per_page": 50,
  "total_records": 1000,
  "records": [
    {
      "id": 143,
      "type": "expense",
      "date": "2013-12-12",
      "concept": "Saldo Inicial",
      "amount": "13200",
      "excluded": false,
      "user_id": 45,
      "api_key_id": null,
      "created_at": "2013-12-13T14:58:29.095Z",
      "updated_at": "2013-12-13T14:58:29.095Z"
    }, {
      "id": 144,
      "type": "expense",
      "date": "2013-12-11",
      "concept": "Square Inc",
      "amount": "2200",
      "excluded": false,
      "user_id": 45,
      "api_key_id": null,
      "created_at": "2013-12-13T14:58:29.095Z",
      "updated_at": "2013-12-13T14:58:29.095Z"
    }, ...
  ]
}

Todos los egresos tienen las siguientes llaves:

  • id: El id del ingreso.
  • type: El tipo de transacción. Siempre retorna expense.
  • date: La fecha del ingreso.
  • concept: El conceptor del ingreso.
  • amount: El valor del ingreso.
  • excluded: true si la transacción está excluída de los reportes, false de lo contrario.
  • user_id: El id del usuario que creó el ingreso. Null si el ingreso fue creado por API.
  • api_key_id: El id del API Token que creó el ingreso. Null si el ingreso fue creado por un usuario.
  • created_at: La fecha en la que fue creado el ingreso.
  • updated_at: Última fecha de actualización.

Mostrar Egreso

GET /expenses/{id}

Donde {id} es el id del ingreso que se quiere ver.

Ejemplo

El siguiente comando muestra la información del ingreso 45:

$ curl -i -H "Authorization: Token token=api_token" https://www.infinanza.com/api/v2/expenses/45

Resultado

Si todo sale bien, se recibe un código 200 OK con la información del ingreso:

{
  "id": 45,
  "type": "expense",
  "date": "2013-12-12",
  "concept": "Saldo Inicial",
  "amount": "13200",
  "excluded": false,
  "user_id": 45,
  "api_key_id": null,
  "created_at": "2013-12-13T14:58:29.095Z",
  "updated_at": "2013-12-13T14:58:29.095Z"
}

Todas los egresos tienen las siguientes llaves:

  • id: El id del ingreso.
  • type: El tipo de transacción. En este caso siempre retorna (expense).
  • date: La fecha del ingreso.
  • concept: El conceptor del ingreso.
  • amount: El valor del ingreso.
  • excluded: true si el ingreso está excluído de los reportes, false de lo contrario.
  • user_id: El id del usuario que creó el ingreso. Null si el ingreso fue creado por API.
  • api_key_id: El id del API Token que creó el ingreso. Null si el ingreso fue creado por un usuario.
  • created_at: La fecha en la que fue creado el ingreso.
  • updated_at: Última fecha de actualización.

Crear Egreso

POST /expenses

Se debe crear un JSON con los siguientes parámetros:

  • date: La fecha del ingreso en formato yyyy-mm-dd (p.e. 2013-12-18)
  • concept: El concepto del ingreso.
  • amount: El valor del ingreso (p.e. 1500, 13250.50)
  • excluded: true si el ingreso se debe excluir de los reportes, false de lo contrario.

Ejemplo

El siguiente comando crea un ingreso por $13,000 el día 13 de Diciembre de 2013:

$ curl -i -X POST -H "Authorization: Token token=api_token" -d '{ "date", "2013-12-13", "concept": "Ingreso de prueba", "amount": 13000, "excluded": false }' https://www.infinanza.com/api/v2/incomes

Resultado

Si todo sale bien, se recibe un código 201 Created con la información completa del ingreso en formato JSON.

Modificar Egreso

PATCH /expenses/{id}

Donde {id} se debe reemplazar con el id del ingreso que se quiere actualizar. En el cuerpo de la petición se debe enviar un JSON con los campos que quieras actualizar (sólo se actualizarán los campos que envíes):

  • date: La fecha del ingreso en formato yyyy-mm-dd (p.e. 2013-12-18)
  • concept: El concepto del ingreso.
  • amount: El valor del ingreso (p.e. 1500, 13250.50)
  • excluded: true si el ingreso está excluído de los reportes, false de lo contrario.

Ejemplo

El siguiente comando actualiza el ingreso con id 24:

$ curl -i -X PATCH -H "Authorization: Token token=api_token" -d '{ date", "2013-12-13", "concept": "Ingreso de prueba", "amount": 13000, "excluded": false }' https://www.infinanza.com/api/v2/expenses/24

Resultado

Si todo sale bien, se recibe un código 204 No Content.

Eliminar Egreso

DELETE /expenses/{id}

Donde {id} se debe reemplazar con el id del ingreso que se quiere eliminar. El cuerpo de la petición debe ir vacío.

Ejemplo

El siguiente comando elimina el ingreso con id 24:

$ curl -i -X DELETE -H "Authorization: Token token=api_token" https://www.infinanza.com/api/v2/expenses/24

Resultado

Si todo sale bien, se recibe un código 204 No Content.

Facturas

Listar Facturas

GET /invoices

Retorna el listado de facturas ordenadas por fecha (las más recientes primero). Puedes controlar la página y el número de registros por página con los parámetros per_page y page. Por defecto el número de registros por página es 50.

GET /invoices?per_page=10&page=3

Ejemplo

El siguiente comando lista las últimas 50 facturas creados:

$ curl -i -H "Authorization: Token token=api_token" https://www.infinanza.com/api/v2/invoices

Resultado

Si todo sale bien, se recibe un código 200 OK con las facturas en el cuerpo en formato JSON como se muestra a continuación:

{ "page": 1,
  "per_page": 50,
  "total_records": 1000,
  "records": [
    {
      "id": 45,
      "type": "invoice",
      "number": "2756",
      "date": "2013-12-12",
      "due_date": "2014-01-24",
      "customer": {
        "id": 23,
        "name": "Square Inc",
        "national_id": "100003876464",
        "address": "Av Boulevard 14 76643"
      },
      "concept": "2756 - Square Inc",
      "items": [
        { "description": "Product 1", "amount": "6000"},
        { "description": "Product 2", "amount": "4000"}
      ],
      "amount": "10000",
      "tax_percentage": "0.16",
      "tax": "1600",
      "paid": false,
      "additional_info": "Información adicional",
      "user_id": 45,
      "api_key_id": null,
      "created_at": "2013-12-13T14:58:29.095Z",
      "updated_at": "2013-12-13T14:58:29.095Z"
    }, ...
  ]
}

Todas las facturas tienen las siguientes llaves:

  • id: El id de la factura.
  • type: El tipo de transacción. Siempre retorna invoice.
  • number: El número de factura.
  • date: La fecha de la factura.
  • due_date: La fecha en que vence la factura.
  • customer: El cliente al que se le realizó la factura.
    • id: El id del cliente
    • name: El nombre del cliente
    • national_id: El número de identificación nacional del cliente
    • address: La dirección del cliente
    • email: El email del cliente
  • concept: Campo generado automáticamente con el número de la factura y el nombre cliente.
  • items: El detalle de la factura.
    • description: La descripción del item.
    • amount El valor del item.
  • amount: El subtotal de la factura (sin impuestos).
  • tax_percentage: El porcentaje de impuesto (en decimales).
  • tax: El impuesto de la factura.
  • paid: true si ya fue pagada, false de lo contrario.
  • additional_info: Información adicional de la factura.
  • user_id: El id del usuario que creó la factura. Null si la facutra fue creada por API.
  • api_key_id: El id del API Token que creó la factura. Null si la factura fue creada por un usuario.
  • created_at: La fecha en la que fue creada la factura.
  • updated_at: Última fecha de actualización.

Mostrar Factura

GET /invoices/{id}

Donde {id} es el id de la factura que se quiere ver.

Ejemplo

El siguiente comando muestra la información de la factura 45:

$ curl -i -H "Authorization: Token token=api_token" https://www.infinanza.com/api/v2/invoices/45

Resultado

Si todo sale bien, se recibe un código 200 OK con la información de la factura:

{
  "id": 45,
  "type": "invoice",
  "number": "2756",
  "date": "2013-12-12",
  "due_date": "2014-01-24",
  "customer": {
    "id": 23,
    "name": "Square Inc",
    "national_id": "100003876464",
    "address": "Av Boulevard 14 76643",
    "email": "[email protected]"
  },
  "concept": "2756 - Square Inc",
  "items": [
    { "description": "Product 1", "amount": "6000"},
    { "description": "Product 2", "amount": "4000"}
  ],
  "amount": "10000",
  "tax_percentage": "0.16",
  "tax": "1600",
  "paid": false,
  "additional_info": "Información adicional",
  "user_id": 45,
  "api_key_id": null,
  "created_at": "2013-12-13T14:58:29.095Z",
  "updated_at": "2013-12-13T14:58:29.095Z"
}

Todas las facturas tienen las siguientes llaves:

  • id: El id de la factura.
  • type: El tipo de transacción. Siempre retorna invoice.
  • number: El número de factura.
  • date: La fecha de la factura.
  • due_date: La fecha en que vence la factura.
  • customer: El cliente al que se le realizó la factura.
    • id: El id del cliente
    • name: El nombre del cliente
    • national_id: El número de identificación nacional del cliente
    • address: La dirección del cliente
    • email: El email del cliente
  • concept: Campo generado automáticamente con el número de la factura y el nombre cliente.
  • items: El detalle de la factura.
    • description: La descripción del item.
    • amount El valor del item.
  • amount: El subtotal de la factura (sin impuestos).
  • tax_percentage: El porcentaje de impuesto (en decimales).
  • tax: El impuesto de la factura.
  • paid: true si ya fue pagada, false de lo contrario.
  • additional_info: Información adicional de la factura.
  • user_id: El id del usuario que creó la factura. Null si la facutra fue creada por API.
  • api_key_id: El id del API Token que creó la factura. Null si la factura fue creada por un usuario.
  • created_at: La fecha en la que fue creada la factura.
  • updated_at: Última fecha de actualización.

Crear Factura

POST /invoices

Se debe crear un JSON con los siguientes parámetros:

  • number: Opcional. El número de la factura. Si no se especifica, el sistema le asigna el siguiente número.
  • date: La fecha de la factura en formato yyyy-mm-dd (p.e. 2013-12-18)
  • due_date: La fecha en la que vence la factura en formato yyyy-mm-dd (p.e. 2013-12-18)
  • customer: El cliente al que se le realiza la factura.
    • id: Opcional. El id del cliente. Omite este campo para crear un nuevo cliente
    • name: Opcional si se pasa id. El nombre del cliente para crear o editar.
    • national_id: Opcional si se pasa id. El número de identificación nacional del cliente.
    • address: Opcional si se pasa id. La dirección del cliente.
  • items: Un arreglo con el detalle de la factura. Se debe enviar al menos un item.
    • description: La descripción del item.
    • amount: El valor del item.
  • tax_percentage: Opcional. El porcentaje de impuesto en decimales (p.e. 0.16). Si se omite, se utiliza tax. Si tax también se omite se utiliza el porcentaje por defecto de la cuenta.
  • tax: Opcional. El monto de impuesto. Si se omite se utiliza el tax_percentage o el porcentaje por defecto de la cuenta para calcular este valor.
  • paid: true si ya fue pagada, false de lo contrario.
  • additional_info: Opcional. Información adicional de la factura.
  • send_by_email: Opcional. Si el valor es true, se envía un email al cliente con la factura (en PDF).
  • email_message: Opcional. El mensaje que se le envía al cliente cuando send_by_email es true.

Ejemplo

El siguiente comando crea una factura por $12,000 el día 13 de Diciembre de 2013:

$ curl -i -X POST -H "Authorization: Token token=api_token" -d '{ "date", "2013-12-13", "customer": {"name": "Nuevo Cliente", "national_id": "003334667", "address": "Av Boulevard 75 384782"}, "items": [{"description": "Producto 1", "amount": "12000" }], "paid": false }' https://www.infinanza.com/api/v2/invoices

Resultado

Si todo sale bien, se recibe un código 201 Created con la información completa de la factura en formato JSON.

Modificar Factura

PATCH /invoices/{id}

Donde {id} se debe reemplazar con el id de la factura que se quiere actualizar. En el cuerpo de la petición se debe enviar un JSON con los campos que quieras actualizar (sólo se actualizarán los campos que envíes):

  • number: Opcional. El número de la factura. Si no se especifica, el sistema le asigna el siguiente número.
  • date: La fecha de la factura en formato yyyy-mm-dd (p.e. 2013-12-18)
  • due_date: La fecha en la que vence la factura en formato yyyy-mm-dd (p.e. 2013-12-18)
  • customer: El cliente al que se le realiza la factura.
    • id: Opcional. El id del cliente. Omite este campo para crear un nuevo cliente
    • name: Opcional si se pasa id. El nombre del cliente para crear o editar.
    • national_id: Opcional si se pasa id. El número de identificación nacional del cliente.
    • address: Opcional si se pasa id. La dirección del cliente.
  • items: Un arreglo con el detalle de la factura. Se debe enviar al menos un item.
    • description: La descripción del item.
    • amount: El valor del item.
  • tax_percentage: Opcional. El porcentaje de impuesto en decimales (p.e. 0.16). Si se omite, se utiliza tax. Si tax también se omite se utiliza el porcentaje por defecto de la cuenta.
  • tax: Opcional. El monto de impuesto. Si se omite se utiliza el tax_percentage o el porcentaje por defecto de la cuenta para calcular este valor.
  • paid: true si ya fue pagada, false de lo contrario.
  • additional_info: Opcional. Información adicional de la factura.

Ejemplo

El siguiente comando actualiza la factura con id 24 a estado pagada:

$ curl -i -X PATCH -H "Authorization: Token token=api_token" -d '{ "paid": true }' https://www.infinanza.com/api/v2/invoices/24

Resultado

Si todo sale bien, se recibe un código 204 No Content.

Eliminar Factura

DELETE /invoices/{id}

Donde {id} se debe reemplazar con el id de la factura que se quiere eliminar. El cuerpo de la petición debe ir vacío.

Ejemplo

El siguiente comando elimina la factura con id 24:

$ curl -i -X DELETE -H "Authorization: Token token=api_token" https://www.infinanza.com/api/v2/invoices/24

Resultado

Si todo sale bien, se recibe un código 204 No Content.

Recibos

Listar Recibos

GET /receipts

Retorna el listado de recibos ordenados por fecha (el más recientes primero). Puedes controlar la página y el número de registros por página con los parámetros per_page y page. Por defecto el número de registros por página es 50.

GET /receipts?per_page=10&page=3

Ejemplo

El siguiente comando lista los últimos 50 recibos creados:

$ curl -i -H "Authorization: Token token=api_token" https://www.infinanza.com/api/v2/receipts

Resultado

Si todo sale bien, se recibe un código 200 OK con los recibos en el cuerpo en formato JSON como se muestra a continuación:

{ "page": 1,
  "per_page": 50,
  "total_records": 1000,
  "records": [
    {
      "id": 143,
      "type": "receipt",
      "date": "2013-12-12",
      "due_date": "2014-01-12",
      "concept": "Agua",
      "amount": "13200",
      "paid": false,
      "user_id": 45,
      "api_key_id": null,
      "created_at": "2013-12-13T14:58:29.095Z",
      "updated_at": "2013-12-13T14:58:29.095Z"
    }, {
      "id": 144,
      "type": "receipt",
      "date": "2013-12-11",
      "due_date": "2014-01-11",
      "concept": "Internet",
      "amount": "2200",
      "paid": false,
      "user_id": 45,
      "api_key_id": null,
      "created_at": "2013-12-13T14:58:29.095Z",
      "updated_at": "2013-12-13T14:58:29.095Z"
    }, ...
  ]
}

Todos los ingresos tienen las siguientes llaves:

  • id: El id del ingreso.
  • type: El tipo de transacción. Siempre retorna receipt.
  • date: La fecha del ingreso.
  • due_date: La fecha en la que vence el recibo en formato yyyy-mm-dd (p.e. 2013-12-18)
  • concept: El conceptor del ingreso.
  • amount: El valor del ingreso.
  • paid: true si ya fue pagado, false de lo contrario.
  • user_id: El id del usuario que creó el ingreso. Null si el ingreso fue creado por API.
  • api_key_id: El id del API Token que creó el ingreso. Null si el ingreso fue creado por un usuario.
  • created_at: La fecha en la que fue creado el ingreso.
  • updated_at: Última fecha de actualización.

Mostrar Recibo

GET /receipts/{id}

Donde {id} es el id del recibo que se quiere ver.

Ejemplo

El siguiente comando muestra la información del recibo 45:

$ curl -i -H "Authorization: Token token=api_token" https://www.infinanza.com/api/v2/receipts/45

Resultado

Si todo sale bien, se recibe un código 200 OK con la información del recibo:

{
  "id": 45,
  "type": "receipt",
  "date": "2013-12-12",
  "due_date": "2014-01-11",
  "concept": "Internet",
  "amount": "13200",
  "paid": false,
  "user_id": 45,
  "api_key_id": null,
  "created_at": "2013-12-13T14:58:29.095Z",
  "updated_at": "2013-12-13T14:58:29.095Z"
}

Todas los recibos tienen las siguientes llaves:

  • id: El id del ingreso.
  • type: El tipo de transacción. Siempre retorna receipt.
  • date: La fecha del ingreso.
  • due_date: La fecha en la que vence el recibo en formato yyyy-mm-dd (p.e. 2013-12-18)
  • concept: El conceptor del ingreso.
  • amount: El valor del ingreso.
  • paid: true si ya fue pagado, false de lo contrario.
  • user_id: El id del usuario que creó el ingreso. Null si el ingreso fue creado por API.
  • api_key_id: El id del API Token que creó el ingreso. Null si el ingreso fue creado por un usuario.
  • created_at: La fecha en la que fue creado el ingreso.
  • updated_at: Última fecha de actualización.

Crear Recibo

POST /receipts

Se debe crear un JSON con los siguientes parámetros:

  • date: La fecha del recibo en formato yyyy-mm-dd (p.e. 2013-12-18)
  • due_date: La fecha en la que vence el recibo en formato yyyy-mm-dd (p.e. 2013-12-18)
  • concept: El concepto del recibo.
  • amount: El valor del recibo (p.e. 1500, 13250.50)
  • paid: true si ya fue pagado, false de lo contrario.

Ejemplo

El siguiente comando crea un recibo por $13,000 el día 13 de Diciembre de 2013:

$ curl -i -X POST -H "Authorization: Token token=api_token" -d '{ "date", "2013-12-13", "due_date": "2014-01-11", "concept": "Recibo de prueba", "amount": 13000, "paid": false }' https://www.infinanza.com/api/v2/receipts

Resultado

Si todo sale bien, se recibe un código 201 Created con la información completa del recibo en formato JSON.

Modificar Recibo

PATCH /receipts/{id}

Donde {id} se debe reemplazar con el id del recibo que se quiere actualizar. En el cuerpo de la petición se debe enviar un JSON con los campos que quieras actualizar (sólo se actualizarán los campos que envíes):

  • date: La fecha del recibo en formato yyyy-mm-dd (p.e. 2013-12-18)
  • due_date: La fecha en la que vence el recibo en formato yyyy-mm-dd (p.e. 2013-12-18)
  • concept: El concepto del recibo.
  • amount: El valor del recibo (p.e. 1500, 13250.50)
  • paid: true si ya fue pagado, false de lo contrario.

Ejemplo

El siguiente comando actualiza el recibo con id 24:

$ curl -i -X PATCH -H "Authorization: Token token=api_token" -d '{ "date", "2013-12-13", "due_date": "2014-01-11", "concept": "Recibo de prueba", "amount": 13000, "paid": false }' https://www.infinanza.com/api/v2/receipts/24

Resultado

Si todo sale bien, se recibe un código 204 No Content.

Eliminar Recibo

DELETE /receipts/{id}

Donde {id} se debe reemplazar con el id del recibo que se quiere eliminar. El cuerpo de la petición debe ir vacío.

Ejemplo

El siguiente comando elimina el recibo con id 24:

$ curl -i -X DELETE -H "Authorization: Token token=api_token" https://www.infinanza.com/api/v2/receipts/24

Resultado

Si todo sale bien, se recibe un código 204 No Content.