Table of Contents

Invoices API v1

Overview

Reckon One API v2 is now available.
Invoices API v2 endpoints provides you with more information about your Invoices.

The Invoices endpoint can be found at:   https://api.reckon.com/R1/{BOOKID}/invoices

Methods supported:   GET, POST, PUT, DELETE

The Book ID represents the unique GUID of the Book the user wants to write data to. For example, c1b3da90-e9df-4d57-8cfb-71a1d7bfe401

Reckon One Module

Endpoint

Additional Parameter(s)

HTTP Method

Description

API Portal

Countries

Invoices

Invoices

/invoiceId

GET

Retrieve an invoice by its unique ID. More information is returned to you when you search for an invoice by ID.

Portal

AU/NZ/UK

Invoices

Invoices

 

GET

Retrieve the list of [customer] invoices

Portal

AU/NZ/UK

Invoices

Invoices

 

POST

Create a [customer] invoice

Portal

AU/NZ/UK

Invoices

Invoices

 

POST  with AutoCalcTax

Create a [customer] invoice with minimal data as Reckon calculates the tax and invoice amounts for you.

 

AU/NZ

Invoices

Invoices

/invoiceId /approve

POST

Approve a [customer] invoice in a book. Only required if the invoices module level is 'medium'

Portal

AU/NZ/UK

Invoices

Invoices

/invoiceid

PUT

Update an Invoice

Portal

AU/NZ/UK

Invoices

Invoices

 

DELETE

Delete a [customer] invoice

Portal

AU/NZ/UK

 

 

Sample GET 

Endpoint: https://api.reckon.com/R1/{BOOKID}/invoices

Method: GET

{
"Id":"007beb13-028c-42b5-acd3-b9f871283407",
"CashbookID":"c1b3da90-e9df-4d57-8cfb-71a1d7bfe401",
"InvoiceNumber":"INV0047",
"InvoiceOrder":43,
"Balance":5.0000,
"CustomerID":"492c0830-99ee-481f-9596-23f15b8ebed9",
"CustomerName":"J customer",
"InvoiceAmount":5.0000,
"InvoiceDate":"2015-03-23T00:00:00+00:00",
"DueDate":"2015-04-04T00:00:00+00:00",
"Status":2,
"Reference":null,
"Notes":null,
"IsOverdue":true
}

Sample POST

Endpoint: https://api.reckon.com/R1/{BOOKID}/invoices

Method: POST

{'CustomerId':'9b4b615f-2815-4f9c-a765-d7f8517cea6a',
'AmountTaxStatus':2,
'InvoiceAmount':2.0000,
'InvoiceDiscountAmount':null,
'InvoiceDiscountPercentage':null,
'InvoiceTax':0.1800,
'Notes':null,
'PaymentDetails':null,
'Reference':null,
'TemplateId':'3edc5b6f-37aa-4516-8c1e-3cf268bf51e6',
'InvoiceDate':'2016-03-07T00:00:00',
'SendDate':null,
'DueDate':null,
'Address':null,
'TaxSummaryText':null,
'LineItems':
[
{
'ParentInvoiceLineItemId':null,
'BillableId':null,
'DiscountAmountExTax':null,
'DiscountAmountTax':null,
'DiscountPercent':null,
'Amount':2.00,
'InvoiceDiscountedAmountExTax':1.8200,
'InvoiceDiscountedTaxAmount':0.1800,
'HasDataForPosting':true,
'IsSubTotal':false,
'IsParent':false,
'IsHidden':false,
'AccountId':'00000000-0000-0000-0000-000000000000',
'PrintGroupAsSingleLine':false,
'ChargeableItemId':'8cd53f00-f6b9-4d6c-891d-83cc6a348e40',
'LineNo':1,
'Description':'SD',
'Quantity':null,
'UnitPriceExTax':1.8181818182,
'UnitPriceTax':0.1818181818,
'UnitPriceIsTaxInclusive':false,
'TaxGroupId':'e6015088-28f5-4bfe-8085-ff9fc2564efa',
'TaxIsModified':false,
'TaxAmount':0.1800,
'AmountExTax':1.8182
}
]
}

Sample POST with AutoCalcTax = true

There is an old dev saying... "never work with animals... and numbers!". Numbers are even more difficult in accounting software where various global tax calculations (VAT / GST etc..) come into play. Issues also arise where the third-party app doesn't have a concept of tax, or Net amounts (Net Amount + Tax Amount = Gross Amount). 

We have therefore sprinkled some magic dust over the API to make this a lot easier for our partners. Below are the POSTs that will accept the AutoCalcTax parameter. We have also worked on reducing the number of required data objects for an invoice post, so we have included some examples below as well. 

AutoCalcTax does not work on invoices with discounts due to the complex nature of those calculations. You will need to pass the full payload to achieve this POST.

Sample Minimum payloads for POSTing an Invoice

AmountTaxStatus = 1 (non-taxed) with AccountId and no discount.

 {
    "CustomerID": "GUID or text",
    "InvoiceAmount": 100,
    "InvoiceDate": "2018-11-16",
    "AmountTaxStatus": 1,
    "LineItems": [
        {
            "LineNo": 1,
            "AmountExTax": 100,
            "AccountId": "GUID or text"
        }
    ]
}

UI:

 

AmountTaxStatus = 1 (non-taxed), ChargeableItemId and , no discount).

{
    "CustomerID": "GUID or text",
    "InvoiceAmount": 100,
    "InvoiceDate": "2018-11-16",
    "AmountTaxStatus": 1,
    "LineItems": [
        {
            "LineNo": 1,
            "AmountExTax": 100,
            "UnitPriceExTax": 10,
            "Quantity": 10,
            "ChargeableItemId": "GUID or text"
        }
    ]
}

UI:


AmountTaxStatus = 1 (non-taxed), ChargeableItemId and a line discount.

{
    "CustomerID": "GUID or text",
    "InvoiceAmount": 90,
    "InvoiceDate": "2018-11-16",
    "AmountTaxStatus": 1,
    "LineItems": [
        {
            "LineNo": 1,
            "AmountExTax": 90,
            "UnitPriceExTax": 100,
            "InvoiceDiscountedAmountExTax": 90,
            "ChargeableItemId": "GUID or text",
            "DiscountPercent": 10
        }
    ]
}

UI:

AmountTaxStatus = 2 (Gross: Tax inclusive) with AccountId.

{
    "CustomerID": "GUID or text",
    "InvoiceAmount": 110,
    "InvoiceTax": 10,
    "InvoiceDate": "2018-11-16",
    "AmountTaxStatus": 2,
    "LineItems": [
        {
            "LineNo": 1,
            "AmountExTax": 100,
            "TaxAmount": 10,
            "TaxGroupId": "GUID or text",
            "AccountId": "GUID or text"
        }
    ]
}

UI:

  

AmountTaxStatus = 2 (Gross: Tax inclusive), AccountId, no discount and AutoCalcTax = true.

{
    "CustomerID": "GUID or text",
    "InvoiceAmount": 110,
    "AmountTaxStatus": 2,
    "InvoiceDate": "2018-11-16",
    "LineItems": [
        {
            "Amount": 110,
            "AccountId": "GUID or text",
            "TaxGroupId": "GUID or text",
            "AutoCalcTax": true
        }
    ]
}


UI:

  

AmountTaxStatus = 2  (Gross: Tax inclusive), ChargeableItemId and no discount.

{
    "CustomerID": "GUID or text",
    "InvoiceAmount": 110,
    "InvoiceTax": 10,
    "InvoiceDate": "2018-11-16",
    "AmountTaxStatus": 2,
    "LineItems": [
        {
            "LineNo": 1,
            "AmountExTax": 100,
            "TaxAmount": 10,
            "UnitPriceExTax": 100,
            "UnitPriceTax": 10,
            "TaxGroupId": "GUID or text",
            "ChargeableItemId": "GUID or text"
        }
    ]
}

UI:

AmountTaxStatus = 2  (Gross: Tax inclusive), ChargeableItemId with discount.

{
    "CustomerID": "GUID or text",
    "InvoiceAmount": 99,
    "InvoiceTax": 9,
    "InvoiceDate": "2018-11-16",
    "AmountTaxStatus": 2,
    "LineItems": [
        {
            "LineNo": 1,
            "AmountExTax": 90,
            "TaxAmount": 9,
            "UnitPriceExTax": 100,
            "UnitPriceTax": 10,
            "InvoiceDiscountedAmountExTax": 90,
            "InvoiceDiscountedTaxAmount": 9,
            "TaxGroupId": "GUID or text",
            "ChargeableItemId": "GUID or text",
            "DiscountPercent": 10
        }
    ]
}

UI:

AmountTaxStatus = 2 (Gross: Tax inclusive), ChargeableItemId, no discount, AutoCalcTax = true.

{
    "CustomerID": "GUID or text",
    "InvoiceAmount": 100,
    "AmountTaxStatus": 2,
    "InvoiceDate": "2018-11-16",
    "LineItems": [
        {
            "Amount": 100,
            "ChargeableItemId": "GUID or text",
            "Quantity": 7,
            "TaxGroupId": "GUID or text",
            "AutoCalcTax": true
        }
    ]
}

UI:

  

AmountTaxStatus = 3 (Net: Tax exclusive), ChargeableItemId and line discount.

{
    "CustomerID": "GUID or text",
    "InvoiceAmount": 99,
    "InvoiceTax": 9,
    "InvoiceDate": "2018-11-16",
    "AmountTaxStatus": 2,
    "LineItems": [
        {
            "LineNo": 1,
            "AmountExTax": 90,
            "TaxAmount": 9,
            "UnitPriceExTax": 100,
            "UnitPriceTax": 10,
            "InvoiceDiscountedAmountExTax": 90,
            "InvoiceDiscountedTaxAmount": 9,
            "TaxGroupId": "GUID or text",
            "ChargeableItemId": "GUID or text",
            "DiscountPercent": 10
        }
    ]
}

UI:


AmountTaxStatus = 3  (Net: Tax exclusive) and AccountId with no discount.

{
    "CustomerID": "GUID or text",
    "InvoiceAmount": 110,
    "InvoiceTax": 10,
    "InvoiceDate": "2018-11-16",
    "AmountTaxStatus": 3,
    "LineItems": [
        {
            "LineNo": 1,
            "AmountExTax": 100,
            "TaxAmount": 10,
            "TaxGroupId": "fGUID or text",
            "AccountId": "GUID or text"
        }
    ]
}

UI:

 

AmountTaxStatus = 3 (Net: Tax exclusive) , AccountId, no discount and AutoCalcTax = true.

{
    "CustomerID": "GUID or text",
    "InvoiceAmount": 100,
    "AmountTaxStatus": 3,
    "InvoiceDate": "2018-11-16",
    "LineItems": [
        {
            "Amount": 100,
            "AccountId": "GUID or text",
            "TaxGroupId": "GUID or text",
            "AutoCalcTax": true
        }
    ]
}

UI:

 

GET with AutoCalcTax

The GET for this post will return InvoiceAmount = $110 as we used AutoCalcTax to calculate the GST (10%) on a tax exclusive amount of $100.00 

AmountTaxStatus = 3 (Net: Tax exclusive), ChargeableItemId and no discount.

{
    "CustomerID": "GUID or text",
    "InvoiceAmount": 110,
    "InvoiceTax": 10,
    "InvoiceDate": "2018-11-16",
    "AmountTaxStatus": 3,
    "LineItems": [
        {
            "LineNo": 1,
            "AmountExTax": 100,
            "TaxAmount": 10,
            "UnitPriceExTax": 10,
            "UnitPriceTax": 1,
            "Quantity": 10,
            "TaxGroupId": "GUID or text",
            "ChargeableItemId": "GUID or text"
        }
    ]
}

UI:

 

AmountTaxStatus = 3 (Net: Tax exclusive), ChargeableItemId, no discount, AutoCalcTax = true.

{
    "CustomerID": "29fb56d2-6220-49fc-8109-39281f1570a7",
    "InvoiceAmount": 100,
    "AmountTaxStatus": 3,
    "InvoiceDate": "2018-11-16",
    "LineItems": [
        {
            "Amount": 100,
            "ChargeableItemId": "e8747ac0-e3b0-4992-8f6d-13d275045584",
            "Quantity": 7,
            "TaxGroupId": "fe43ca25-f4d4-47a6-bf48-c195558cefb4",
            "AutoCalcTax": true
        }
    ]
}

 UI:

 

AmountTaxStatus = 3 (Net: Tax exclusive), ChargeableItemId and line discount.

{
    "CustomerID": "GUID or text7",
    "InvoiceAmount": 99,
    "InvoiceTax": 9,
    "InvoiceDate": "2018-11-16",
    "AmountTaxStatus": 3,
    "LineItems": [
        {
            "LineNo": 1,
            "AmountExTax": 90,
            "TaxAmount": 9,
            "UnitPriceExTax": 10,
            "UnitPriceTax": 1,
            "Quantity": 10,
            "InvoiceDiscountedAmountExTax": 90,
            "InvoiceDiscountedTaxAmount": 9,
            "TaxGroupId": "GUID or text",
            "ChargeableItemId": "GUID or text",
            "DiscountPercent": 10
        }
    ]

UI:

  Details of each object

Data Field

Reckon One Data Location

Data Type

Details

Detailed information about the invoice entered by the user

Text

CustomerID

The GUID or NAME of the customer that the invoice is for

GUID/Text

AmountTaxStatus

Whether the invoice is tax inclusive or not

Set data types:

  • 0 -   Unknown
  • 1 -   Non Taxed
  • 2 -   Inclusive
  • 3 -   Exclusive

InvoiceAmount

The total amount of the invoice

Number

InvoiceDiscountAmount

The total discount amount of the invoice

Number

InvoiceDiscountPercentage

The total discount amount as a percentage of the invoice

Number

InvoiceTax

The total amount of the tax of the invoice

Number (Must calculate correctly to total invoice)

Notes

Any notes for the invoice.

Character limit: up to 1000 characters

Text

Reference

Reference notes for the invoice

Character limit: up to 50 characters

Text

PurchaseDescription

The description of the purchase

Text

TermID

The GUID or Name of the term for the invoice

GUID or Text

TermID can be found from terms endpoint

TemplateID

The GUID or NAME of the template for the invoice

GUID or Text

InvoiceDate

Date of the invoice

DateTime

DueDate

The due date of the invoice

DueDate

Status

The status of the Invoice

Data types:

  1. Pending
  2. Approved

LineItems

 

Array

DiscountAmountExTax

Amount of a discount excluding the tax component for that line of the invoice

Number

DiscountAmountTax

Amount of a discount including the tax amount for that line of the invoice

Number

DiscountPercent

Amount of a discount for the line as a percentage

Number

Amount

Amount of the line

Number

InvoiceDiscountedAmountExTax

The Amount of Invoice line when discounted without tax component

Number

InvoiceDiscountedTaxAmount

The amount of tax for the invoice line when discounted

Number

IsHidden

Whether the line is hidden on the invoice or not

Boolean – True/False

HasDataForPosting

If not set to true this will post as a non-posting transaction which cannot be currently changed in the UI. ** POST AS TRUE.

Boolean - True/False

ChargeableItemId

GUID or NAME of the item being applied to the invoice line

GUID/Text

Line No

The Line of the Invoice. **Each new line must be a new number and an individual array.

Number

AccountId

The GUID or NAME of the account if an account not a item is  being used on the invoice line

GUID/Text

Description

Description for the line

Character limit: up to 1000 characters

Text

Quantity

The amount of the item being sold

Number

ProjectId

The ID or NAME of a project being assigned to that line

GUID/Text

UnitPriceExTax

The unit price of the line excluding tax

Number

UnitPriceTax

The tax amount being applied to each unit on the line

Number

UnitPriceIsTaxInclusive

Whether the Unit price should be deemed tax inclusive on the invoice

Boolean – True/False

TaxGroupID

The Tax code's GUID or NAME to apply to the line

GUID/Text

Can be obtained via the Tax Groups endpoint

TaxIsModified

If its false, your tax calculations will be compared against the Reckon One tax engine and if it does not match the transaction is blocked. If set to true, the engine is not checked and you can post any tax you desire. The UI also controls this function via SETTINGS for the same purpose.

Boolean – True/false

AutoCalcTax

Allows Reckon to calculate the tax. You send the net amounts to us including "AutoCalcTax": true and a TaxGroupId in the payload, and our tax engine figures out what the tax should be. It also means that by using that you are always complying with and using the R1 tax engine. ** Was not available in early API versions.

Boolean: true/false

TaxAmount

Tax amount for the line

Number

AmountExTax

The amount of the line excluding tax

Number

PaymentDetails

Payment Details text from the Invoice

Character limit: up to 500 characters

Text

 

 

How did we do?

Estimates

Customer Adjustment Notes API v1

Related Articles

Powered by HelpDocs (opens in a new tab)

Powered by HelpDocs (opens in a new tab)