<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#ffffff">
    Hi,<br>
    <br>
    disclaimer: this mail is completely full of shameless self-promotion
    <br>
    <br>
    <blockquote cite="mid:op.wannweydg5awvh@macintosh.local" type="cite">
      <div>can people recommend an online invoicing solution (for home
        businesses doing smallish gigs like myself and co.)</div>
    </blockquote>
    <br>
    We offer this service at <a class="moz-txt-link-freetext" href="https://invoicefu.com">https://invoicefu.com</a><br>
    <br>
    It's oriented to freelances and small companies with simple
    invoicing needs and also to application developers who want to use
    invoicing as a service instead of rolling their own solution.<br>
    <br>
    You can basically create proformas (estimates) and invoices, share
    them with your clients or accountant via read-only URIs or just
    sending a PDF, keep client records, see pending payments and get
    some reports (well, we are going to deploy the reports feature this
    week :p). Taxes and currencies are configurable and the resulting
    PDF can be used as an electronic invoice in the UK. There's a quite
    small but handy mobile app available that we hope to improve soon.<br>
    <br>
    If you are on Heroku and you want to access programatically to the
    API, there's an extension available. <br>
    <br>
    If you want to do something fancy with your data, you can use the
    API and get JSON/XML quite easily. Examples for getting all your
    invoices or client records from the command line would be<br>
    <br>
    <span style="color: rgb(0, 0, 0); font-family: 'dejavu sans
      mono',monospace; font-size: 11px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: 2; text-indent: 0px; text-transform:
      none; white-space: pre-wrap; widows: 2; word-spacing: 0px;
      background-color: rgb(255, 255, 255); display: inline ! important;
      float: none;">curl
      <a class="moz-txt-link-freetext" href="https://invoicefu.com/api/accounts/3-javier-ramirez/invoices?api_key=">https://invoicefu.com/api/accounts/3-javier-ramirez/invoices?api_key=</a></span><span
      style="color: rgb(0, 0, 0); font-family: 'dejavu sans
      mono',monospace; font-size: 11px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: 2; text-indent: 0px; text-transform:
      none; white-space: pre-wrap; widows: 2; word-spacing: 0px;
      background-color: rgb(255, 255, 255); display: inline ! important;
      float: none;">8</span><span style="color: rgb(0, 0, 0);
      font-family: 'dejavu sans mono',monospace; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-indent: 0px; text-transform: none; white-space: pre-wrap;
      widows: 2; word-spacing: 0px; background-color: rgb(255, 255,
      255); display: inline ! important; float: none;">5374e0e</span><span
      style="color: rgb(0, 0, 0); font-family: 'dejavu sans
      mono',monospace; font-size: 11px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: 2; text-indent: 0px; text-transform:
      none; white-space: pre-wrap; widows: 2; word-spacing: 0px;
      background-color: rgb(255, 255, 255); display: inline ! important;
      float: none;">a4c</span><span style="color: rgb(0, 0, 0);
      font-family: 'dejavu sans mono',monospace; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-indent: 0px; text-transform: none; white-space: pre-wrap;
      widows: 2; word-spacing: 0px; background-color: rgb(255, 255,
      255); display: inline ! important; float: none;">eefa03b8</span><span
      style="color: rgb(0, 0, 0); font-family: 'dejavu sans
      mono',monospace; font-size: 11px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: 2; text-indent: 0px; text-transform:
      none; white-space: pre-wrap; widows: 2; word-spacing: 0px;
      background-color: rgb(255, 255, 255); display: inline ! important;
      float: none;">5374e0ef1b</span><span style="color: rgb(0, 0, 0);
      font-family: 'dejavu sans mono',monospace; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-indent: 0px; text-transform: none; white-space: pre-wrap;
      widows: 2; word-spacing: 0px; background-color: rgb(255, 255,
      255); display: inline ! important; float: none;">69a3b</span><span
      style="color: rgb(0, 0, 0); font-family: 'dejavu sans
      mono',monospace; font-size: 11px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: 2; text-indent: 0px; text-transform:
      none; white-space: pre-wrap; widows: 2; word-spacing: 0px;
      background-color: rgb(255, 255, 255); display: inline ! important;
      float: none;">37b96d</span><span style="color: rgb(0, 0, 0);
      font-family: 'dejavu sans mono',monospace; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-indent: 0px; text-transform: none; white-space: pre-wrap;
      widows: 2; word-spacing: 0px; background-color: rgb(255, 255,
      255); display: inline ! important; float: none;">4c</span><span
      style="color: rgb(0, 0, 0); font-family: 'dejavu sans
      mono',monospace; font-size: 11px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: 2; text-indent: 0px; text-transform:
      none; white-space: pre-wrap; widows: 2; word-spacing: 0px;
      background-color: rgb(255, 255, 255); display: inline ! important;
      float: none;">eefa</span><span style="color: rgb(0, 0, 0);
      font-family: 'dejavu sans mono',monospace; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-indent: 0px; text-transform: none; white-space: pre-wrap;
      widows: 2; word-spacing: 0px; background-color: rgb(255, 255,
      255); display: inline ! important; float: none;">0bbdb23f&format=json</span><br>
    <span style="color: rgb(0, 0, 0); font-family: 'dejavu sans
      mono',monospace; font-size: 11px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: 2; text-indent: 0px; text-transform:
      none; white-space: pre-wrap; widows: 2; word-spacing: 0px;
      background-color: rgb(255, 255, 255); display: inline ! important;
      float: none;">curl
      <a class="moz-txt-link-freetext" href="https://invoicefu.com/api/accounts/3-javier-ramirez/clients?api_key=">https://invoicefu.com/api/accounts/3-javier-ramirez/clients?api_key=</a></span><span
      style="color: rgb(0, 0, 0); font-family: 'dejavu sans
      mono',monospace; font-size: 11px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: 2; text-indent: 0px; text-transform:
      none; white-space: pre-wrap; widows: 2; word-spacing: 0px;
      background-color: rgb(255, 255, 255); display: inline ! important;
      float: none;">8</span><span style="color: rgb(0, 0, 0);
      font-family: 'dejavu sans mono',monospace; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-indent: 0px; text-transform: none; white-space: pre-wrap;
      widows: 2; word-spacing: 0px; background-color: rgb(255, 255,
      255); display: inline ! important; float: none;">5374e0e</span><span
      style="color: rgb(0, 0, 0); font-family: 'dejavu sans
      mono',monospace; font-size: 11px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: 2; text-indent: 0px; text-transform:
      none; white-space: pre-wrap; widows: 2; word-spacing: 0px;
      background-color: rgb(255, 255, 255); display: inline ! important;
      float: none;">a4c</span><span style="color: rgb(0, 0, 0);
      font-family: 'dejavu sans mono',monospace; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-indent: 0px; text-transform: none; white-space: pre-wrap;
      widows: 2; word-spacing: 0px; background-color: rgb(255, 255,
      255); display: inline ! important; float: none;">eefa03b8</span><span
      style="color: rgb(0, 0, 0); font-family: 'dejavu sans
      mono',monospace; font-size: 11px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: 2; text-indent: 0px; text-transform:
      none; white-space: pre-wrap; widows: 2; word-spacing: 0px;
      background-color: rgb(255, 255, 255); display: inline ! important;
      float: none;">5374e0ef1b</span><span style="color: rgb(0, 0, 0);
      font-family: 'dejavu sans mono',monospace; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-indent: 0px; text-transform: none; white-space: pre-wrap;
      widows: 2; word-spacing: 0px; background-color: rgb(255, 255,
      255); display: inline ! important; float: none;">69a3b</span><span
      style="color: rgb(0, 0, 0); font-family: 'dejavu sans
      mono',monospace; font-size: 11px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: 2; text-indent: 0px; text-transform:
      none; white-space: pre-wrap; widows: 2; word-spacing: 0px;
      background-color: rgb(255, 255, 255); display: inline ! important;
      float: none;">37b96d</span><span style="color: rgb(0, 0, 0);
      font-family: 'dejavu sans mono',monospace; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-indent: 0px; text-transform: none; white-space: pre-wrap;
      widows: 2; word-spacing: 0px; background-color: rgb(255, 255,
      255); display: inline ! important; float: none;">4c</span><span
      style="color: rgb(0, 0, 0); font-family: 'dejavu sans
      mono',monospace; font-size: 11px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: 2; text-indent: 0px; text-transform:
      none; white-space: pre-wrap; widows: 2; word-spacing: 0px;
      background-color: rgb(255, 255, 255); display: inline ! important;
      float: none;">eefa</span><span style="color: rgb(0, 0, 0);
      font-family: 'dejavu sans mono',monospace; font-size: 11px;
      font-style: normal; font-variant: normal; font-weight: normal;
      letter-spacing: normal; line-height: normal; orphans: 2;
      text-indent: 0px; text-transform: none; white-space: pre-wrap;
      widows: 2; word-spacing: 0px; background-color: rgb(255, 255,
      255); display: inline ! important; float: none;">0bbdb23f&format=json</span><br>
    <br>
    <br>
    The API is fully RESTful, including the HATEOAS constraint, and if
    you were attending the session on usable APIs at LRUG, all the
    usability tips I was talking about are implemented there.<br>
    <br>
    It's developed in Rails 3.0.x and all the tests are green at the
    moment of sending this e-mail.<br>
    <br>
    Cheers,<br>
    <br>
    j<br>
    <br>
    <br>
    <div class="moz-signature">-- <br>
      <p>javier ramírez</p>
      <p> ..i do ruby on rails development in madrid, spain, at <a
          href="http://www.aspgems.com">http://www.aspgems.com</a>
      </p>
      <p> <a href="http://javier-ramirez.com" title="javier ramirez">javier
          ramirez's home page (http://javier-ramirez.com)</a><br>
        <a href="http://formatinternet.com" title="format internet :
          ruby on rails blog by javier ramirez">javier ramirez's blog
          (http://formatinternet.com)</a><br>
      </p>
    </div>
  </body>
</html>