/api/v1_2/documents/:document_idDocument attributes
Text and date attributes may be *empty as null or empty string “”. Amount attributes are filled with 0 by default.
Response attributes
-
id Unique document ID generated by Datamolino on document create Example: 69054543
-
agenda_id Unique folder ID where the document belongs. (in the UI this is now called Folder) Example: 234433
-
type_ String - Document type PurchaseInvoice or SalesInvoice_ Example: PurchaseInvoice
-
created_at Timestamp of document creation in iso8601 format Example: 2014-12-17T21:58:56Z
-
last_modified_at Timestamp of last document modification in iso8601 format Example: 2014-12-17T22:03:44Z
-
state String - State of document, see description of states below Example: repairing
-
comments_count Integer - Current count of document comments Example: 3
-
verificator_response Result text description for processed or not processed document (reason why is document not processed) Example: ok
-
preview Link to image first page preview. It contains Amazon S3 link to document preview image of document first page. Link is valid for 30 seconds only. Example: https://molino.s3….
-
original Link to original. It contains Amazon S3 link to document file. Link is valid for 1 hour only after request time and it can be used only once. If you want download original document as url safe base64 string, call Retrieve original file. Example: https://molino.s3….
-
content_type Content (Mime) type of uploaded document file. Example: application/pdf
-
user_file_name Initial name of file uploaded by user. Children created during split have the same file name of their parent in this column. Example: file_name.pdf
-
parent_document_id__ID of originally uploaded document that was split into multiple invoices. Example: 44324235
-
invoice_type This denotes the sub-type of invoice, such as Invoice, Credit note, Receipt. This value can be changed in Datamolino UI. The Datamolino system tries to detect this invoice type. If detection is not successful, the value defaults to “0 - invoice”. See table below. Example: 0
invoice_type Description
0 Invoice
1 Credit note
2 Proforma invoice
3 Cash receipt
4 Not supported
5 Invoice statement
6 Purchase order
approval
-
state String - approval addon state Example: approved
-
state_description String - approval addon state description e.g. reject reason Example: Some text
-
approved_at Date of approval Example: 2014-12-17T21:58:56Z
bank_account
-
bban Country specific bank account number - Basic Bank Account Number data not provided by default Example: 84939477347
-
bank_code Country specific bank code data not provided by default Example: 1100
-
bic Bank identifier Code (SWIFT code) data not provided by default Example: CEKOSKBXXXX
-
iban International Bank Account Number data not provided by default Example: demo_identifier
payment_options
List of payment provider specific data extracted from invoice (e.g. Bpay). Contains empty object {} if no payment options are available.
Example of bpay online provider data:
{“biller_code”: “188011”, customer_reference“: “10010047002”}
export_metadata
Contains external id for each integration (Xero, Quickbooks, FreeAgent) where the document was export during his lifecycle. Usually only one is present. Data is always related to the latest export. Contains empty object {} if no data is available.
Example:
export_metadata: {“xero”: {“id”: “demo_identifier”}}
data > header
-
locale Language and country identification. Internal usage, based on OCR estimate or other metadata. For internal use only. Example: en_GB
-
invoice_text Short document text. Invoice description or first line item text. See text field for full text data. Example: Dropper premium service …
-
invoice_no Invoice number Example: INVC34452683
-
sepa_reference - is not provided by default SEPA Payer reference Example VS43984349348
-
variable_symbol Payment identifier used for domestic payments in Czech Republic and Slovakia. Example: 5345345
-
specific_symbol Payment identifier used for domestic payments in Czech Republic and Slovakia. Example: 4344445
-
issue_date Document issue date in format YYYY-MM-DD. Example: 2012-05-21
-
tax_date - is not provided by default Document tax date in format YYYY-MM-DD Example: 2012-05-21
-
due_date Document due date in format YYYY-MM-DD. Example: 2012-05-21
-
currency Document currency 3-character upercase format (ISO 4217 standard). Example: USD
-
currency_rate - is not provided by default Currency rate if used foreign currency (manually entered by user in web interface) Example: 1.0
-
text Compilation of item code and name pairs. Usable as source for items full text search. Example: I23423 Item…
-
customer_no - is not provided by default Customer number Example: 1234
-
purchase_order_no - is not provided by default Purchase order number. In general this is the order id of the supplier. Unique alpha numeric code identifying purchase order Example: 4321
-
reference - is not provided by default Reference. Additional reference. Can be used for purchase order number of the customer. Internal PO number of customer. Example: ref.:2131
-
delivery_note_no - is not provided by default Delivery note number Example: xxxx
-
card_no - is not provided by default Credit card number. The last 4 digits of Debit or Credit card used for payment. Example: …4211
supplier
Check document type (PurchaseInvoice/SalesInvoice) for subject identification
-
name Company name Example: Dropper Inc.
-
id Company registration number data not provided by default Example: 73434366
-
tax_id Company registration TAX ID data not provided by default Example: 85445455
-
vat_id Company registration VAT ID / GST ID Example: EN645445654
-
street Street name and number data not provided by default Example: Franklin Street 5
-
city City data not provided by default Example: Boston
-
postal_code Postal code data not provided by default Example: 02130
-
country__Country data not provided by default Example: USA
-
bban Country specific bank account number - Basic Bank Account Number data not provided by default Example: 84939477347
-
bank_code Country specific bank code data not provided by default Example: 1100
-
bic Bank identifier Code (SWIFT code) data not provided by default Example: CEKOSKBXXXX
-
iban International Bank Account Number data not provided by default Example: demo_identifier
customer
Check document type (PurchaseInvoice/SalesInvoice) for subject identification
-
name Company name Example: Datamolino
-
id Company registration number data not provided by default Example: 53436562
-
tax_id Company registration TAX ID data not provided by default Example: 4548575
-
vat_id Company registration VAT ID Example: SK9488445
-
street Street name and number data not provided by default Example: Zochova 6
-
city City data not provided by default Example: \\\\\\\\*Bratislava
-
postal_code Postal code data not provided by default Example: 81103
-
country Country data not provided by default Example: SVK
-
bban Country specific bank account number - Basic Bank Account Number data not provided by default Example: 84939477347
-
bank_code Country specific bank code data not provided by default Example: 1100
-
bic Bank identifier Code (SWIFT code) data not provided by default Example: CEKOSKBXXXX
-
summary
Payment summary
-
payment_amount The total payable after deducting discounts, deposits and adding up additional costs and shipping. data not provided by default Example: 485.93
-
paid_deposits - data not provided by default Example: 0
-
rounding - data not provided by default Example: 0
-
sub_total Example: 404.94
-
vat_total Example: 80.99
-
total Example: 485.93
-
shipping Freight charges / Shipping. data not provided by default Example: 0.00
-
other_cost1 Additional cost. Can be packaging fees, handling fees, etc. data not provided by default Example: 0.00
-
other_cost2 Additional cost. Can be packaging fees, handling fees, etc. data not provided by default Example: 0.00
-
other_cost3 Additional cost. Can be packaging fees, handling fees, etc. data not provided by default Example: 0.00
-
total_discount Total of discounts applied on the invoice line items. Captured if this is denoted in the summary of invoice.data not provided by default Example: 0.00
tax_lines
List of tax summary groupped by tax
-
name Example: Tax Group 1
-
percent Example: 20
-
sub_total Example: 404.94
-
vat_total Example: 80.99
-
total Example: 485.93
-
paid_deposits - deprecated Example: 0
items
List of line items
-
code Example: 07149140786
-
name Example: Droppper basic service
-
quantity Example: 1
-
unit Example: item
-
unit_price Example: 404.94
-
tax_rate Example: 20
-
subtotal Example: 404.94
-
tax Example: 80.99
-
total The line amount reflects the discounted price if a discount_rate has been used i.e total = quantity * unit_price * ((100 - discount_rate)/100) Example: 485.93
-
discount_rate Percentage. Discount on the line item. data not provided by default Example: 3.00
-
discount Discount amount on the line item. data not provided by default Example: 23.00
PLEASE NOTE: Where the comment “data not provided by default” is present, contact our team to agree on specific user plan for your application, if your business case requires such information.
Where the comment “deprecated” appears, the feature is no longer supported. Contact us for more info.
Document types
Also known as sub-folders in web app UI (Purchases/Sales).
type Description
PurchaseInvoice Received document/invoice for your purchase
SalesInvoice Invoice for selling of your goods or services
Document states
state Description
uploaded new uploaded document
extracting document in processing (automated processing)
templating document in processing (manual processing)
repairing document in processing (manual processing)
ready document processing finished, data ready for export
not_ready document processing finished as not processed
parent document processing finished, document was divided into multiple child documents
trash deleted document (deleted by user or through API)
file_duplicate same file is already in folder (this detection is automated when uploaded through the UI or you can turn on this check when uploading through API)
data_duplicate document with same data is already in folder
exporting document is being exported to connected online accounting SW (only via Web interface)
auto_exporting document is being exported to connected online accounting SW (only via Web interface)
exported document was successfully exported to connected online accounting SW (only via Web interface)
auto_exported document was successfully exported to connected online accounting SW (only via Web interface)
export_error document export to integrated cloud accounting failed because of connection or validation issues
Document states after processing
New uploaded documents are automatically queued for processing and after processing there are possible these states:
state Description
ready processing successfully finished, document data are ready for processing
not_ready processing finished with error without data extraction, check attribute verificator_response for reason
parent result of processed document are new documents, original document was split into new documents. Request for parent document returns list of child documents and parent document is not available through API.
data_duplicate document with same data is already in folder (supplier name / invoice number combination)
file_duplicate same file is already in folder (this detection is automated when uploaded through the UI or you can turn on this check when uploading through API)
Attribute preview contains Amazon S3 link to processed document preview image of document first page. Link is valid for 30 seconds only.
Attribute original contains Amazon S3 link to processed document original file. Link is valid for 1 hour. If you want download original document as url safe base64 string, call Retrieve original file
Path parameters
| Name | Example | Description |
|---|---|---|
document_id |
— | — |
Headers
| Name | Example | Description |
|---|---|---|
Accept |
application/json | — |
Content-Type |
application/json | — |
Code examples
curl --request GET 'https://app.datamolino.com/api/v1_2/documents/98765' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer demo_access_token'GET /api/v1_2/documents/98765 HTTP/1.1
Host: app.datamolino.com
Accept: application/json
Content-Type: application/json
Authorization: Bearer demo_access_tokenconst response = await fetch("https://app.datamolino.com/api/v1_2/documents/98765", {
method: "GET",
headers: {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": "Bearer demo_access_token"
},
});
const data = await response.json();import axios from "axios";
const response = await axios({
method: "get",
url: "https://app.datamolino.com/api/v1_2/documents/98765",
headers: {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": "Bearer demo_access_token"
}
});
console.log(response.data);import requests
url = "https://app.datamolino.com/api/v1_2/documents/98765"
headers = {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": "Bearer demo_access_token"
}
response = requests.request("GET", url, headers=headers)
response.raise_for_status()
print(response.json())require 'json'
require 'net/http'
uri = URI("https://app.datamolino.com/api/v1_2/documents/98765")
request = Net::HTTP::Get.new(uri)
request["Accept"] = "application/json"
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer demo_access_token"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
http.request(request)
end
puts JSON.parse(response.body)# app/services/datamolino_client.rb
require 'json'
require 'net/http'
class DatamolinoClient
BASE_URL = "https://app.datamolino.com"
def initialize(access_token: Rails.application.credentials.dig(:datamolino, :access_token))
@access_token = access_token
end
def request_fetch_document
uri = URI("#{BASE_URL}/api/v1_2/documents/98765")
request = Net::HTTP::Get.new(uri)
request["Accept"] = "application/json"
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer #{@access_token}"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
JSON.parse(response.body)
end
end<?php
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('GET', 'https://app.datamolino.com/api/v1_2/documents/98765', [
'headers' => json_decode('{"Accept":"application/json","Content-Type":"application/json","Authorization":"Bearer demo_access_token"}', true)
]);
echo $response->getBody();OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://app.datamolino.com/api/v1_2/documents/98765")
.addHeader("Accept", "application/json")
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer demo_access_token")
.method("GET", null)
.build();
Response response = client.newCall(request).execute();using var client = new HttpClient();
using var request = new HttpRequestMessage(HttpMethod.Get, "https://app.datamolino.com/api/v1_2/documents/98765");
request.Headers.Add("Accept", "application/json");
request.Headers.Add("Authorization", "Bearer demo_access_token");
using var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());client := &http.Client{}
req, err := http.NewRequest("GET", "https://app.datamolino.com/api/v1_2/documents/98765", nil)
if err != nil { panic(err) }
req.Header.Add("Accept", "application/json")
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Bearer demo_access_token")
res, err := client.Do(req)
if err != nil { panic(err) }
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil { panic(err) }
fmt.Println(string(body))import Foundation
var request = URLRequest(url: URL(string: "https://app.datamolino.com/api/v1_2/documents/98765")!)
request.httpMethod = "GET"
request.setValue("application/json", forHTTPHeaderField: "Accept")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue("Bearer demo_access_token", forHTTPHeaderField: "Authorization")
let (data, _) = try await URLSession.shared.data(for: request)
print(String(data: data, encoding: .utf8)!)Responses
200 OK
Content type: application/json; charset=utf-8
{
"links": {
"back": {
"href": "https://beta.datamolino.com/api/v1_2/documents"
},
"self": {
"href": "https://beta.datamolino.com/api/v1_2/documents/315940?access_token=demo_access_token"
}
},
"documents": [
{
"links": {
"self": {
"href": "https://beta.datamolino.com/api/v1_2/documents/315940"
}
},
"id": 315940,
"type": "PurchaseInvoice",
"created_at": "2019-11-05T10:41:06Z",
"last_modified_at": "2019-11-05T10:44:52Z",
"state": "ready",
"comments_count": 2,
"view_detail": "summary",
"verificator_response": "ok",
"parent_document_id": null,
"preview": "/originals/preview/missing.png",
"original": "https://files.example.com/datamolino-demo/original/demo-supplier-invoice.pdf?expires=3600&signature=demo_signature",
"user_file_name": "12_20180427.000158.01.pdf",
"invoice_type": 0,
"bank_account": {
"bban": "",
"bank_code": "",
"bic": null,
"iban": null
},
"payment_options": {
"bpay": {
"biller_code": "122211",
"customer_reference": "12222047002"
}
},
"data": {
"header": {
"locale": "sk_SK",
"invoice_text": "Cloud Services Subscription",
"invoice_no": "INV-2026-00039",
"sepa_reference": "",
"variable_symbol": "",
"specific_symbol": "",
"issue_date": "2017-02-28",
"tax_date": null,
"due_date": null,
"currency": "EUR",
"currency_rate": "1.0",
"text": " Cloud Services Subscription Cloud Services Subscription",
"customer_no": "",
"purchase_order_no": "",
"reference": "",
"delivery_note_no": "",
"card_no": ""
}
},
"supplier": {
"name": "Demo Supplier Ltd",
"id": "",
"tax_id": "",
"vat_id": "IE6388047V",
"street": "",
"city": "",
"postal_code": "",
"country": "",
"iban": null,
"bic": null,
"bban": null,
"bank_code": null
},
"customer": {
"name": "Demo Trading Ltd",
"id": "",
"tax_id": "",
"vat_id": "SK2023832976",
"street": "Zochova 6 - 8",
"city": "Bratislava",
"postal_code": "811 03",
"country": "SVK",
"iban": null,
"bic": null,
"bban": null,
"bank_code": null
},
"summary": {
"shipping": 0,
"other_cost1": 0,
"other_cost2": 0,
"other_cost3": 0,
"total_discount": 0,
"payment_amount": 0,
"paid_deposits": 0,
"rounding": 0,
"sub_total": 102,
"vat_total": 0,
"total": 102
},
"tax_lines": [
{
"id": 238676,
"name": "Tax line name",
"percent": 0,
"sub_total": 102,
"vat_total": 0,
"total": 102,
"paid_deposits": 0
}
],
"items": [
{
"id": 389633,
"code": "",
"name": "Demo Supplier Ltd",
"quantity": 0,
"unit": 0,
"unit_price": 0,
"tax_rate": 0,
"subtotal": 96,
"tax": 0,
"total": 0,
"discount_rate": 0,
"discount": 0
},
{
"id": 389634,
"code": "",
"name": "Demo Supplier Ltd",
"quantity": 0,
"unit": 0,
"unit_price": 0,
"tax_rate": 0,
"subtotal": 6,
"tax": 0,
"total": 0,
"discount_rate": 0,
"discount": 0
}
]
}
]
}