- Fakturan.nu API 2 /
 - Invoices /
 - create
 
Params
- 
number
Invoice number. Defaults to +1 of highest number currently in account.
 - 
date
Date string in the format “yyyy-mm-dd”
 - 
client_id
Id of existing client. “client_id” OR “client” is required.
 - 
days
Number of days from “date” that invoice payment is due.
 - 
our_reference
Name of person who acts as reference at senders company
 - 
your_reference
Name of person who acts as reference at recievers company
 - 
locale
One of: “sv”, “en”, “da”, “nb”
 - currency
 - settings Must be a Hash
 - 
settings[invoice_template]
One of: “urban”, “clean”, “iconic”, “foxy”, “static”, “original”, “croatia”
 - 
settings[show_product_code]
Boolean. Should the invoice show the product code column?
 - 
client
Must be a Hash
See documentation for 'create client' for detailed information about the client params. Note: it's not possible to update a client on a invoice update, only create a client on invoice create.
Metadata::only: :create - rows Must be an Array of nested elements
 - rows[id]
 - rows[product_id]
 - 
rows[discount]
Discount in %
 - 
rows[amount]
How many units of this item? May be fractional (“1.5”).
 - 
rows[text]
Max length 255
 - 
rows[product_code]
Max length 30
 - 
rows[product_name]
Max length 255
 - 
rows[product_unit]
Max length 30
 - 
rows[product_price]
Price of this item. May be fractional (“9.95”).
 - 
rows[product_tax]
One of 25, 12, 6, 0
 - 
rows[text_row]
Boolean. Show this row as purely text?
 - rows[sort_order]
 
Examples
# Create an invoice to an existing client.
POST /api/v2/invoices
{
  "client_id": 1,
  "rows": [
    {
      "product_name": "My product",
      "product_tax": 25,
      "product_price": "100",
      "amount": "10"
    },
    {
      "product_name": "My product 2",
      "product_tax": 12,
      "product_price": "100",
      "amount": "10 st"
    },
    {
      "text": "Some arbitrary text",
      "text_row": true
    }
  ]
}
201
{
  "data": {
    "id": 1,
    "number": 1,
    "date": "2021-01-25",
    "client_id": 1,
    "days": 30,
    "our_reference": "",
    "your_reference": "",
    "sent": false,
    "paid_at": null,
    "locale": "sv",
    "currency": "SEK",
    "settings": {
      "invoice_template": "croatia",
      "prices_inc_tax": "no",
      "show_product_code": false
    },
    "sum": "2370.0",
    "net": "2000.0",
    "tax": "370.0",
    "tax_details": {
      "25": "250.0",
      "12": "120.0"
    },
    "address": {
      "name": "Google Inc",
      "street_address": "1600 Amphitheatre Parkway",
      "care_of": "",
      "zip_code": "940 43",
      "city": "Mountain View",
      "country": "SE"
    },
    "rows": [
      {
        "id": 1,
        "product_id": 0,
        "discount": 0,
        "amount": "10.0",
        "text": "",
        "product_code": null,
        "product_name": "My product",
        "product_unit": "",
        "product_price": "100.0",
        "product_tax": 25,
        "text_row": false,
        "sort_order": 0,
        "tax_deductible": false
      },
      {
        "id": 2,
        "product_id": 0,
        "discount": 0,
        "amount": "10.0",
        "text": "",
        "product_code": null,
        "product_name": "My product 2",
        "product_unit": "",
        "product_price": "100.0",
        "product_tax": 12,
        "text_row": false,
        "sort_order": 1,
        "tax_deductible": false
      },
      {
        "id": 3,
        "product_id": 0,
        "discount": 0,
        "amount": "0.0",
        "text": "Some arbitrary text",
        "product_code": null,
        "product_name": "",
        "product_unit": "",
        "product_price": "0.0",
        "product_tax": 0,
        "text_row": true,
        "sort_order": 2,
        "tax_deductible": false
      }
    ]
  }
}
# Invalid invoice
POST /api/v2/invoices
{
  "client_id": 0,
  "date": "",
  "rows": [
    {
      "product_code": "ABCD-ABCD-ABCD-ABCD-ABCD-ABCD-ABCD-"
    }
  ]
}
422
{
  "errors": {
    "client_id": [
      {
        "error": "blank"
      }
    ],
    "rows": [
      {
        "0": {
          "rows.product_code": [
            {
              "error": "too_long",
              "count": 30
            }
          ]
        }
      }
    ]
  }
}
# Create an invoice to a new client.
POST /api/v2/invoices
{
  "date": "2021-01-25",
  "client": {
    "company": "Google",
    "address": {
      "street_address": "1600 Amphitheatre Parkway",
      "zip_code": "94043",
      "city": "Mountain View",
      "country": "SE"
    }
  },
  "rows": [
    {
      "product_name": "My product",
      "product_tax": 25,
      "product_price": "100",
      "amount": "10"
    }
  ]
}
201
{
  "data": {
    "id": 4,
    "number": 1,
    "date": "2021-01-25",
    "client_id": 3,
    "days": 30,
    "our_reference": "",
    "your_reference": "",
    "sent": false,
    "paid_at": null,
    "locale": "sv",
    "currency": "SEK",
    "settings": {
      "invoice_template": "croatia",
      "prices_inc_tax": "no",
      "show_product_code": false
    },
    "sum": "1250.0",
    "net": "1000.0",
    "tax": "250.0",
    "tax_details": {
      "25": "250.0"
    },
    "address": {
      "name": "Google",
      "street_address": "1600 Amphitheatre Parkway",
      "care_of": "",
      "zip_code": "940 43",
      "city": "Mountain View",
      "country": "SE"
    },
    "rows": [
      {
        "id": 7,
        "product_id": 0,
        "discount": 0,
        "amount": "10.0",
        "text": "",
        "product_code": null,
        "product_name": "My product",
        "product_unit": "",
        "product_price": "100.0",
        "product_tax": 25,
        "text_row": false,
        "sort_order": 0,
        "tax_deductible": false
      }
    ]
  }
}