- 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
}
]
}
}