Understanding REST API

I have the email warning of the end of the legacy API

I am not computer minded and most of the wording is gibberish to me

Will there be clearer instructions on managing this or is it time to find a new app?

Hi @rossdunbar

How have you used the API up until now? Is this something you have done, or did you hire a developer to do it for you?

I have various integrations all using XML via excel, will I still be able to use XML?

Hi @Rob

The XML API will also be depreciated next year.

You may be able to upgrade it to the newer API, we’ve ensured that everything you could do in the older API is available in the new version, it’s just JSON rather than XML and requires a different type of authentication.

Just so I understand, it is just the authentication method that will need to change? can i leave everything as is apart from sending over to quickfile via api?

The new API is JSON rather than XML (different formatting).

For example, to create a bank transaction using the current API, you would do something like this (using XML):

<Bank_CreateTransaction  xmlns="https://api.quickfile.co.uk"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="https://api.quickfile.co.uk https://api.quickfile.co.uk/schemas/1_2/Bank_CreateTransaction.xsd">
	<Header>
		<MessageType>Request</MessageType>
		<SubmissionNumber>00000001</SubmissionNumber>
		<Authentication>
			<AccNumber>123456</AccNumber>
			<MD5Value>7dd259dea3393880406d292e3f6f5830</MD5Value>
			<ApplicationID>appID</ApplicationID>
		</Authentication>
	</Header>
	<Body>
		<Transaction>
			<BankNominalCode>1200</BankNominalCode>
			<Date>2017-03-13</Date>
			<Reference>My test bank entry</Reference>
			<Notes>transaction notes..</Notes>
			<Amount>35.65</Amount>
		</Transaction>
		<DuplicateFilterOn>true</DuplicateFilterOn>
	</Body>
</Bank_CreateTransaction>

This also includes the “authentication” header information.

The new API would be like this:

{
  "date": "2026-09-01",
  "reference": "My test bank entry",
  "notes": "transaction notes..",
  "amount": 35.65,
  "duplicate_check": true
}

The authentication for the new one would be as a header field:
Authorization: Bearer {Your token here}

Here’s the documentation for reference:

Just getting my head around it as Im not familiar with JSON, could you give me the same comaprison to create an estimate

Of course.

In the existing API, you’d have something like this (XML):

<Invoice_Create  xmlns="https://api.quickfile.co.uk"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="https://api.quickfile.co.uk https://api.quickfile.co.uk/schemas/1_2/Invoice_Create.xsd">
	<Header>
		<MessageType>Request</MessageType>
		<SubmissionNumber>00000001</SubmissionNumber>
		<Authentication>
			<AccNumber>123456</AccNumber>
			<MD5Value>7dd259dea3393880406d292e3f6f5830</MD5Value>
			<ApplicationID>appID</ApplicationID>
		</Authentication>
	</Header>
	<Body>
		<InvoiceData>
			<InvoiceType>ESTIMATE</InvoiceType>
			<ClientID>1343151</ClientID>
			<ClientAddress>
				<Address><![CDATA[123 Test Street<br/>Manchester<br/>MA1 5TH]]></Address>
				<CountryISO>GB</CountryISO>
			</ClientAddress>
			<Currency>GBP</Currency>
			<TermDays>14</TermDays>
			<Language>en</Language>
			<InvoiceLines>
				<ItemLines>
					<ItemLine>
						<ItemID>0</ItemID>
						<ItemName>BC1</ItemName>
						<ItemDescription>300 Business Cards (250gsm)</ItemDescription>
						<ItemNominalCode>4000</ItemNominalCode>
						<Tax1>
							<TaxName>VAT</TaxName>
							<TaxPercentage>20.00</TaxPercentage>
							<TaxAmount>20</TaxAmount>
						</Tax1>
						<UnitCost>100</UnitCost>
						<Qty>1</Qty>
					</ItemLine>
					<ItemLine>
						<ItemID>0</ItemID>
						<ItemName>EMB1</ItemName>
						<ItemDescription>Embossing Stamp</ItemDescription>
						<ItemNominalCode>4000</ItemNominalCode>
						<Tax1>
							<TaxName>VAT</TaxName>
							<TaxPercentage>20.00</TaxPercentage>
							<TaxAmount>10</TaxAmount>
						</Tax1>
						<UnitCost>50</UnitCost>
						<Qty>1</Qty>
					</ItemLine>
				</ItemLines>

			</InvoiceLines>
			<Scheduling>
				<SingleInvoiceData>
					<IssueDate>2026-09-03</IssueDate>
				</SingleInvoiceData>
			</Scheduling>
		</InvoiceData>
	</Body>
</Invoice_Create>

In the new API, you’d have this:

Headers
Authorization: Bearer {{Token}}
Content-Type: application/json

Body

{
  "type": "estimate",
  "client_id": 1343151,
  "client_contact_name": "Jim Smith",
  "client_address": "123 Test Street<br/>Manchester<br/>MA1 5TH",
  "client_country": "GB",
  "currency": "GBP",
  "term_days": 14,
  "language": "en",
  "issue_date": "2026-09-03",
  "item_lines": [
    {
      "item_name": "BC1",
      "description": "300 Business Cards (250gsm)",
      "nominal_code": 4000,
      "vat_rate": 20,
      "vat_amount": 20,
      "unit_cost": 100,
      "qty": 1
    },
    {
      "item_name": "EMB1",
      "description": "Embossing Stamp",
      "nominal_code": 4000,
      "vat_rate": 20,
      "vat_amount": 10,
      "unit_cost": 50,
      "qty": 1
    }
  ]
}

I think I’ve covered everything there, but if I’ve missed anything, please let me know.

The guide I linked to above for the new API is your best reference as this shows you every possible field and what value types it supports. It also has examples of both the request and response.

Thanks Matthew

Kindest Regards

Rob Hall

Unit 75 Albion Road

Carlton Industrial Estate

Barnsley, S71 3HW

Tel/Fax: 01226 805686

Web: www.yscoatings.co.uk

1 Like