Share
Explore

QUiCK API Reference

Introduction


The QUiCK API is built to provide access for 3rd party developers / services to download all data from authorized companies.

The QUiCK API is organized around
. Our API has predictable resource-oriented URLs, accepts
request bodies, returns
responses, and uses standard HTTP response codes, authentication, and verbs.

Base url:
https://api.quick.riport.co.hu/1/



Authentication

The QUiCK API uses
API tokens
to authenticate requests. You can view and manage your API tokens
. Only administrators are able to generate / delete API tokens.

Your API tokens carry many privileges, so be sure to keep them secure! Do not share your secret API tokens in publicly accessible areas such as GitHub, client-side code, and so forth. A generated API token is only displayed once, so be sure to save it. These tokens do not expire.

Authentication is performed via API Token. Provide your API Token in the request header. You do not need to provide a password. All API requests must be made over
. Calls made over plain HTTP will fail. API requests without authentication will also fail.

Authorization: Token [token]

error response:
status
: 403

Pagination

You can use the
page_size
GET parameter to determine the number of results per page. The default value is 20.

curl --header 'Authorization: Token [TOKEN]' -X GET --header 'Content-Type: application/json' 'https://api.quick.riport.co.hu/1/expenses?page_size=10'

If there is more pages in the result, you can jump to a required page by adding the
page
GET parameter to the url.

curl --header 'Authorization: Token [TOKEN]' -X GET --header 'Content-Type: application/json' 'https://api.quick.riport.co.hu/1/expenses?page=3'


Filtering

Certain API endpoints allow filtering parameters with the following values:
paid_status
0
Parameter value
Parameter meaning
1
1
Not paid
2
2
Paid
3
3
Partially paid
There are no rows in this table
paid_status
is used in the context of both expenses and incomes.
invoice_class
0
Parameter value
Parameter meaning
Comment
1
0
issued by a vendor (expense)
2
1
reserved field, do not use
3
2
reserved field, do not use
4
3
other document, not an invoice
this type of invoice_class can only be created on the
interface.
There are no rows in this table
invoice_class
is only used in the context of expenses at the moment.
payment_method
0
Parameter value
Parameter meaning
1
“transfer”
wire transfer
2
"cash”
cash payment
3
"card”
bank card payment
4
"cod”
cash on delivery
There are no rows in this table
payment_method
is used in the context of both expenses and incomes.
invoice_type
0
Parameter value
Parameter meaning
1
0
invoice
2
1
storno
3
2
advance (HU: előlegszámla)
4
3
final invoice (HU: végszámla)
5
4
credit invoice (HU: helyesbítő számla)
There are no rows in this table
invoice_type
is only used in the context of incomes at the moment.

API Endpoints

In the following section, we list all the REST API endpoints with examples.

Expenses


This endpoint provides access to all invoiced expenses for a given company. It does not include taxes and salaries.

GET https://api.quick.riport.co.hu/1/expenses

Request:
filters: append to the url as a GET parameter, e.g. ?from_date=2020-02-02&to_date=2020-02-03

curl --header 'Authorization: Token [TOKEN]' -X GET --header 'Content-Type: application/json' 'https://api.quick.riport.co.hu/1/expenses?from_date=2020-01-01'


Available filters:
from_date = "2020-02-02"
to_date = "2020-02-03"
paid_status = possible values: see PAID_STATUS table
invoice_number = "Zen-123"
partner = "Zen Heads Kft."
expense_types = "expense" - expense type name. you have to append this parameter for each value you want to filter on
tags = "tag" - tag name. you have to append this parameter for each value you want to filter on
payment_method = possible values: see PAYMENT_METHOD table
is_new = true / false
is_due_soon = true / false
is_expired = true / false

Success response:
{
"count": 1,
"next": null,
"previous": null,
"results": [
"partners": [
{
"id": 1,
"name": "Partner Kft."
},
],
"currencies": [
{
"id": 1,
"name": "HUF"
},
],
"tags": [
{
"id": 1,
"name": "cimke 1"
},
{
"id": 2,
"name": "cimke 2"
},
],
"expense_types": [
{
"id": 1,
"name": "Költségtípus"
},
],
"accounts": [
{
"id": 1,
"name": "Bankkártya"
}
],
"invoices": [
{
"accounting_period_end": "2020-01-01",
"accounting_period_start": "2020-01-01",
"assignments": [
{
"accounting_period_end": null, //if there is an accounting period on the invoice, it can't be on the assignments
"accounting_period_start": null, //if there is an accounting period on the invoice, it can't be on the assignments
"expense_type": 1,
"gross_amount": "3236125.00",
"id": 98,
"net_amount": "2548130.00",
"tags": [1],
"vat": 1,
"vat_amount": "687995.00",
}
],
"created": "2020-08-07T11:43:55.380732Z",
"issued_at": "2017-04-10",
"currency": "HUF",
"delivered_at": "2020-01-01",
"due_at": "2020-01-01",
"exchange_date": "2020-01-01",
"exchange_rate": "1.00",
"fulfilled_at": "2017-04-10",
"gross_amount": "3236125.00",
"id": 83,
"invoice_class": possible values: INVOICE_CLASS
"invoice_number": "2017/BB0000238",
"paid_status": possible values: PAID_STATUS,
"account": 1,
"partner": 1,
"payment_method": "transfer",
"planned_payment_date": "2020-01-01",
"simple_tags": [1],
"tags": [1],
"user_saw": "2020-08-07T11:43:55Z",
"vat_area": "HU"
}
]
]
}

Error response:
status: 400

{'_error': 'Error description'}

Incomes


This endpoint provides access to all income invoices for a given company.

GET https://api.quick.riport.co.hu/1/incomes

Request:
filters: append to the url as a GET parameter, e.g. ?from_date=2020-02-02&to_date=2020-02-03

curl --header 'Authorization: Token [TOKEN]' -X GET --header 'Content-Type: application/json' 'https://api.quick.riport.co.hu/1/incomes?from_date=2020-01-01'

Available filters:
from_date = "2020-02-02"
to_date = "2020-02-03"
paid_status = possible values: see PAID_STATUS table
invoice_number = "Zen-123"
partner = "Zen Heads Kft."
revenue_types = "revenue" - revenue type name. you have to append this parameter for each value you want to filter on
tags = "tag" - tag name. you have to append this parameter for each value you want to filter on
payment_method = possible values: see PAYMENT_METHOD table
is_new = true / false
is_due_soon = true / false
is_expired = true / false

Success response:
{
"count": 1,
"next": null,
"previous": null,
"results": [
"partners": [
{
"id": 1,
"name": "Partner Kft."
},
],
"currencies": [
{
"id": 1,
"name": "HUF"
},
],
"tags": [
{
"id": 1,
"name": "cimke 1"
},
{
"id": 2,
"name": "cimke 2"
},
],
"revenue_types": [
{
"id": 1,
"name": "Költségtípus"
},
],
"invoices": [
{
"accounting_period_end": "2020-01-01",
"accounting_period_start": "2020-01-01",
"assignments": [
{
"accounting_period_end": null //if there is an accounting period on the invoice, it can't be on the assignments
"accounting_period_start": null, //if there is an accounting period on the invoice, it can't be on the assignments,
"gross_amount": "481600.00",
"id": 217,
"net_amount": "481600.00",
"revenue_type": 1,
"tags": [1],
"vat": 4,
"vat_amount": "0.00",
}
"currency": "HUF",
"due_at": "2020-06-11",
"exchange_rate": "1.00",
"fulfilled_at": "2020-06-03",
"gross_amount": "481600.00",
"id": 665,
"invoice_number": "2020-000006W",
"invoice_type": possible values: INVOICE_TYPE
"is_cancelled": false,
"issued_at": "2020-06-03",
"net_amount": "481600.00",
"paid_status": possible values: PAID_STATUS,
"partner": 1,
"payment_method": possible values: PAYMENT_METHOD,
"planned_payment_date": "2020-01-01",
"referred_invoice_number": "2017/BB0000238",
"simple_tags": [1],
"tags": [],
"user_saw": "2020-06-26T10:39:34.105286Z",
"vat_amount": "0.00",
"vat_area": "HU"
}
]
]
}


error response:
status: 400

{'_error': 'Error description'}

Partners


This endpoint provides access to all the company’s partners, both vendors and customers.

GET https://api.quick.riport.co.hu/1/partners

Request:
filters: append to the url as a GET parameter, e.g. ?name=ACME

curl --header 'Authorization: Token [TOKEN]' -X GET --header 'Content-Type: application/json' 'https://api.quick.riport.co.hu.hu/1/partners?name=ACME'

Available filters:
name = "ACME"

Success response:
{
"count": 11,
"next": null,
"previous": null,
"results": [
{
"account_number": "3214231423",
"address": "Pelda utca 5.",
"city": "Budapest",
"id": 28,
"is_customer": false,
"is_vendor": true,
"name": "ACME, Inc.",
"tax_number": "31241242344",
"zip_code": "1234",
}
]
}


error response:
status: 400

{'_error': 'Error description'}


Expense Artifact


This endpoint provides access to all artifacts uploaded for the expenses of a given company.

POST https://api.quick.riport.co.hu/1/artifacts/expense

Request:
ids: [1,2]

curl --header 'Authorization: Token [TOKEN]' -X POST --header 'Content-Type: application/json' --data '{"ids": [1, 2]}' 'https://api.quick.riport.co.hu/1/artifacts/expense/'

Success response:
{
[
{
"expense_id": 1,
"url": "https://quick.riport.co.hu/media/uploads/1/2020/08/24/artifact.pdf",
}
]
}
*Note: The generated artifact URL in the response expires after 1 hour

error response:
status: 400

{'_error': 'Error description'}


Income Artifact


This endpoint provides access to all artifacts uploaded for the incomes of a given company.

POST https://api.quick.riport.co.hu/1/artifacts/income

Request:
ids: [1,2]

curl --header 'Authorization: Token [TOKEN]' -X POST --header 'Content-Type: application/json' --data '{"ids": [1, 2]}' 'https://api.quick.riport.co.hu/1/artifacts/income/'

Success response:
{
[
{
"income_id": 1,
"url": "https://quick.riport.co.hu/media/uploads/1/2020/08/24/artifact.pdf"
}
]
}
*Note: The generated artifact URL in the response expires after 1 hour

error response:
status: 400

{'_error': 'Error description'}


Accounts


This endpoint provides access to all bank/cash accounts created for the given company.

GET https://api.quick.riport.co.hu/1/accounts

Request: i
filters: append to the url as a GET parameter, e.g. ?name=asd

curl --header 'Authorization: Token [TOKEN]' -X GET --header 'Content-Type: application/json' 'https://api.quick.riport.co.hu.hu/1/accounts?name=Bank'

Available filters:
name = "berek"

Success response:
{
"count": 1,
"next": null,
"previous": null,
"results":
[
{
"account_number": "341234123",
"id": 9,
"name": "berek tarca",
}
]
}


error response:
status: 400

{'_error': 'Error description'}


Payments


This endpoint provides access to all expense payments belonging to all accounts for the given company.

GET https://api.quick.riport.co.hu/1/payments

Request:
filters: append to the url as a GET parameter, e.g. ?name=asd

curl --header 'Authorization: Token [TOKEN]' -X GET --header 'Content-Type: application/json' 'https://api.quick.riport.co.hu/1/payments?from_date=2020-07-01'

Available filters:
from_date = "2020-02-02"
to_date = "2020-02-03"

Success response:
{
[
{
"date": "2020-08-13",
"id": 93,
"transactions": [
{
"amount": "3236125.00",
"currency": "HUF",
"exchange_rate": "1.00",
"id": 69,
"expense_id": 1,
"invoice_number": "2017/BB0000238adsf",
"partner": "PARTNER Kft."
}
],
"account": 1
}
]
}

error response:
status: 400

{'_error': 'Error description'}


Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.