Skip to content
Website

Repair Document

Send document for repair (human verification - Document is queued for human review). Processing time is usually longer than automated document processing.

POST/api/v1_2/documents/:document_id/repair

Send document for repair (human verification - Document is queued for human review). Processing time is usually longer than automated document processing.

If user recognize errors in extracted data you can post back document for repair (repair description is optional). Call can be executed on created document in state Ready or Not_ready.

Path parameters

Name Example Description
document_id - -

Headers

Name Example Description
Authorization Bearer demo_access_token -

Request body

{
  "repair_description": "YOUR_REPAIR_DESCRIPTION"
}

Code examples

cURL

curl --request POST 'https://app.datamolino.com/api/v1_2/documents/98765/repair' \
  --header 'Authorization: Bearer demo_access_token' \
  --header 'Content-Type: application/json' \
  --data '{
  "repair_description": "YOUR_REPAIR_DESCRIPTION"
}'

HTTP

POST /api/v1_2/documents/98765/repair HTTP/1.1
Host: app.datamolino.com
Authorization: Bearer demo_access_token
Content-Type: application/json

{
  "repair_description": "YOUR_REPAIR_DESCRIPTION"
}

JavaScript Fetch

const response = await fetch("https://app.datamolino.com/api/v1_2/documents/98765/repair", {
  method: "POST",
  headers: {
"Authorization": "Bearer demo_access_token",
"Content-Type": "application/json"
  },
  body: JSON.stringify({
"repair_description": "YOUR_REPAIR_DESCRIPTION"
  }),
});

const data = await response.json();

Node.js Axios

import axios from "axios";

const response = await axios({
  method: "post",
  url: "https://app.datamolino.com/api/v1_2/documents/98765/repair",
  headers: {
"Authorization": "Bearer demo_access_token",
"Content-Type": "application/json"
  },
  data: {
"repair_description": "YOUR_REPAIR_DESCRIPTION"
  }
});

console.log(response.data);

Python Requests

import requests

url = "https://app.datamolino.com/api/v1_2/documents/98765/repair"
headers = {
  "Authorization": "Bearer demo_access_token",
  "Content-Type": "application/json"
}
payload = {
  "repair_description": "YOUR_REPAIR_DESCRIPTION"
}

response = requests.request("POST", url, headers=headers, json=payload)
response.raise_for_status()
print(response.json())

Ruby Net::HTTP

require 'json'
require 'net/http'

uri = URI("https://app.datamolino.com/api/v1_2/documents/98765/repair")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Bearer demo_access_token"
request["Content-Type"] = "application/json"
request.body = <<~JSON
{
  "repair_description": "YOUR_REPAIR_DESCRIPTION"
}
JSON

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
  http.request(request)
end

puts JSON.parse(response.body)

Ruby on Rails

# 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_repair_document
uri = URI("#{BASE_URL}/api/v1_2/documents/98765/repair")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Bearer #{@access_token}"
request["Content-Type"] = "application/json"
request.body = <<~JSON
  {
    "repair_description": "YOUR_REPAIR_DESCRIPTION"
  }
JSON

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end

JSON.parse(response.body)
  end
end

PHP Guzzle

<?php

use GuzzleHttp\Client;

$client = new Client();
$response = $client->request('POST', 'https://app.datamolino.com/api/v1_2/documents/98765/repair', [
'headers' => json_decode('{"Authorization":"Bearer demo_access_token","Content-Type":"application/json"}', true),
'json' => json_decode('{"repair_description":"YOUR_REPAIR_DESCRIPTION"}', true)
]);

echo $response->getBody();

Java OkHttp

OkHttpClient client = new OkHttpClient();

RequestBody body = RequestBody.create("{\n  \"repair_description\": \"YOUR_REPAIR_DESCRIPTION\"\n}", MediaType.parse("application/json"));
Request request = new Request.Builder()
.url("https://app.datamolino.com/api/v1_2/documents/98765/repair")
.addHeader("Authorization", "Bearer demo_access_token")
.addHeader("Content-Type", "application/json")
.method("POST", body)
.build();

Response response = client.newCall(request).execute();

C# HttpClient

using var client = new HttpClient();
using var request = new HttpRequestMessage(HttpMethod.Post, "https://app.datamolino.com/api/v1_2/documents/98765/repair");
request.Headers.Add("Authorization", "Bearer demo_access_token");
request.Content = new StringContent("{\n  \"repair_description\": \"YOUR_REPAIR_DESCRIPTION\"\n}", Encoding.UTF8, "application/json");

using var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

Go Native

client := &http.Client{}
req, err := http.NewRequest("POST", "https://app.datamolino.com/api/v1_2/documents/98765/repair", strings.NewReader("{\n  \"repair_description\": \"YOUR_REPAIR_DESCRIPTION\"\n}"))
if err != nil { panic(err) }
req.Header.Add("Authorization", "Bearer demo_access_token")
req.Header.Add("Content-Type", "application/json")

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))

Swift URLSession

import Foundation

var request = URLRequest(url: URL(string: "https://app.datamolino.com/api/v1_2/documents/98765/repair")!)
request.httpMethod = "POST"
request.setValue("Bearer demo_access_token", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = "{\n  \"repair_description\": \"YOUR_REPAIR_DESCRIPTION\"\n}".data(using: .utf8)

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/repair?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-05T11:19:53Z",
      "state": "repairing",
      "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
      },
      "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": ""
      },
      "customer": {
        "name": "Demo Trading Ltd",
        "id": "",
        "tax_id": "",
        "vat_id": "SK2023832976",
        "street": "Zochova 6 - 8",
        "city": "Bratislava",
        "postal_code": "811 03",
        "country": "SVK"
      },
      "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,
          "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
        }
      ]
    }
  ]
}

Type to search…

↑↓ navigate↵ selectEsc close