curl --request POST \
--url https://docflow.textin.com/api/app-api/sip/platform/v2/category/create \
--header 'Content-Type: multipart/form-data' \
--header 'x-ti-app-id: <api-key>' \
--header 'x-ti-secret-code: <api-key>' \
--form workspace_id=1234567890 \
--form name=Invoice \
--form extract_model=Acgpt \
--form 'sample_files=<string>' \
--form 'fields={
"name": "Invoice Code",
"description": "Invoice code description",
"prompt": "<string>",
"use_prompt": true,
"alias": [
"Invoice No.",
"Bill Number"
],
"identity": "invoice_number",
"multi_value": true,
"duplicate_value_distinct": true,
"transform_settings": {
"datetime_settings": {
"format": "yyyy-MM-dd"
},
"enumerate_settings": {
"items": [
"VAT Special Invoice",
"VAT General Invoice",
"Electronic Invoice"
]
},
"regex_settings": {
"match": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"replace": "$1/$2/$3"
},
"mismatch_action": {
"default_value": "N/A"
}
}
}' \
--form 'category_prompt=VAT invoice, including fields such as invoice code, invoice number, etc.' \
--form 'description=<string>' \
--form 'tables={
"name": "Detail Table",
"prompt": "<string>",
"collect_from_multi_table": true,
"fields": [
{
"name": "Invoice Code",
"description": "Invoice code description",
"prompt": "<string>",
"use_prompt": true,
"alias": [
"Invoice No.",
"Bill Number"
],
"identity": "invoice_number",
"multi_value": true,
"duplicate_value_distinct": true,
"transform_settings": {
"datetime_settings": {
"format": "yyyy-MM-dd"
},
"enumerate_settings": {
"items": [
"VAT Special Invoice",
"VAT General Invoice",
"Electronic Invoice"
]
},
"regex_settings": {
"match": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"replace": "$1/$2/$3"
},
"mismatch_action": {
"default_value": "N/A"
}
}
}
]
}' \
--form with_detail=true \
--form sample_files.items='@example-file'import requests
url = "https://docflow.textin.com/api/app-api/sip/platform/v2/category/create"
files = { "sample_files.items": ("example-file", open("example-file", "rb")) }
payload = {
"workspace_id": "1234567890",
"name": "Invoice",
"extract_model": "Acgpt",
"sample_files": "<string>",
"fields": "{
\"name\": \"Invoice Code\",
\"description\": \"Invoice code description\",
\"prompt\": \"<string>\",
\"use_prompt\": true,
\"alias\": [
\"Invoice No.\",
\"Bill Number\"
],
\"identity\": \"invoice_number\",
\"multi_value\": true,
\"duplicate_value_distinct\": true,
\"transform_settings\": {
\"datetime_settings\": {
\"format\": \"yyyy-MM-dd\"
},
\"enumerate_settings\": {
\"items\": [
\"VAT Special Invoice\",
\"VAT General Invoice\",
\"Electronic Invoice\"
]
},
\"regex_settings\": {
\"match\": \"^(\\d{4})-(\\d{2})-(\\d{2})$\",
\"replace\": \"$1/$2/$3\"
},
\"mismatch_action\": {
\"default_value\": \"N/A\"
}
}
}",
"category_prompt": "VAT invoice, including fields such as invoice code, invoice number, etc.",
"description": "<string>",
"tables": "{
\"name\": \"Detail Table\",
\"prompt\": \"<string>\",
\"collect_from_multi_table\": true,
\"fields\": [
{
\"name\": \"Invoice Code\",
\"description\": \"Invoice code description\",
\"prompt\": \"<string>\",
\"use_prompt\": true,
\"alias\": [
\"Invoice No.\",
\"Bill Number\"
],
\"identity\": \"invoice_number\",
\"multi_value\": true,
\"duplicate_value_distinct\": true,
\"transform_settings\": {
\"datetime_settings\": {
\"format\": \"yyyy-MM-dd\"
},
\"enumerate_settings\": {
\"items\": [
\"VAT Special Invoice\",
\"VAT General Invoice\",
\"Electronic Invoice\"
]
},
\"regex_settings\": {
\"match\": \"^(\\d{4})-(\\d{2})-(\\d{2})$\",
\"replace\": \"$1/$2/$3\"
},
\"mismatch_action\": {
\"default_value\": \"N/A\"
}
}
}
]
}",
"with_detail": "true"
}
headers = {
"x-ti-app-id": "<api-key>",
"x-ti-secret-code": "<api-key>"
}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('workspace_id', '1234567890');
form.append('name', 'Invoice');
form.append('extract_model', 'Acgpt');
form.append('sample_files', '<string>');
form.append('fields', '{
"name": "Invoice Code",
"description": "Invoice code description",
"prompt": "<string>",
"use_prompt": true,
"alias": [
"Invoice No.",
"Bill Number"
],
"identity": "invoice_number",
"multi_value": true,
"duplicate_value_distinct": true,
"transform_settings": {
"datetime_settings": {
"format": "yyyy-MM-dd"
},
"enumerate_settings": {
"items": [
"VAT Special Invoice",
"VAT General Invoice",
"Electronic Invoice"
]
},
"regex_settings": {
"match": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"replace": "$1/$2/$3"
},
"mismatch_action": {
"default_value": "N/A"
}
}
}');
form.append('category_prompt', 'VAT invoice, including fields such as invoice code, invoice number, etc.');
form.append('description', '<string>');
form.append('tables', '{
"name": "Detail Table",
"prompt": "<string>",
"collect_from_multi_table": true,
"fields": [
{
"name": "Invoice Code",
"description": "Invoice code description",
"prompt": "<string>",
"use_prompt": true,
"alias": [
"Invoice No.",
"Bill Number"
],
"identity": "invoice_number",
"multi_value": true,
"duplicate_value_distinct": true,
"transform_settings": {
"datetime_settings": {
"format": "yyyy-MM-dd"
},
"enumerate_settings": {
"items": [
"VAT Special Invoice",
"VAT General Invoice",
"Electronic Invoice"
]
},
"regex_settings": {
"match": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"replace": "$1/$2/$3"
},
"mismatch_action": {
"default_value": "N/A"
}
}
}
]
}');
form.append('with_detail', 'true');
form.append('sample_files.items', '{
"fileName": "example-file"
}');
const options = {
method: 'POST',
headers: {'x-ti-app-id': '<api-key>', 'x-ti-secret-code': '<api-key>'}
};
options.body = form;
fetch('https://docflow.textin.com/api/app-api/sip/platform/v2/category/create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://docflow.textin.com/api/app-api/sip/platform/v2/category/create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"workspace_id\"\r\n\r\n1234567890\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nInvoice\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"extract_model\"\r\n\r\nAcgpt\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sample_files\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fields\"\r\n\r\n{\r\n \"name\": \"Invoice Code\",\r\n \"description\": \"Invoice code description\",\r\n \"prompt\": \"<string>\",\r\n \"use_prompt\": true,\r\n \"alias\": [\r\n \"Invoice No.\",\r\n \"Bill Number\"\r\n ],\r\n \"identity\": \"invoice_number\",\r\n \"multi_value\": true,\r\n \"duplicate_value_distinct\": true,\r\n \"transform_settings\": {\r\n \"datetime_settings\": {\r\n \"format\": \"yyyy-MM-dd\"\r\n },\r\n \"enumerate_settings\": {\r\n \"items\": [\r\n \"VAT Special Invoice\",\r\n \"VAT General Invoice\",\r\n \"Electronic Invoice\"\r\n ]\r\n },\r\n \"regex_settings\": {\r\n \"match\": \"^(\\\\d{4})-(\\\\d{2})-(\\\\d{2})$\",\r\n \"replace\": \"$1/$2/$3\"\r\n },\r\n \"mismatch_action\": {\r\n \"default_value\": \"N/A\"\r\n }\r\n }\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"category_prompt\"\r\n\r\nVAT invoice, including fields such as invoice code, invoice number, etc.\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tables\"\r\n\r\n{\r\n \"name\": \"Detail Table\",\r\n \"prompt\": \"<string>\",\r\n \"collect_from_multi_table\": true,\r\n \"fields\": [\r\n {\r\n \"name\": \"Invoice Code\",\r\n \"description\": \"Invoice code description\",\r\n \"prompt\": \"<string>\",\r\n \"use_prompt\": true,\r\n \"alias\": [\r\n \"Invoice No.\",\r\n \"Bill Number\"\r\n ],\r\n \"identity\": \"invoice_number\",\r\n \"multi_value\": true,\r\n \"duplicate_value_distinct\": true,\r\n \"transform_settings\": {\r\n \"datetime_settings\": {\r\n \"format\": \"yyyy-MM-dd\"\r\n },\r\n \"enumerate_settings\": {\r\n \"items\": [\r\n \"VAT Special Invoice\",\r\n \"VAT General Invoice\",\r\n \"Electronic Invoice\"\r\n ]\r\n },\r\n \"regex_settings\": {\r\n \"match\": \"^(\\\\d{4})-(\\\\d{2})-(\\\\d{2})$\",\r\n \"replace\": \"$1/$2/$3\"\r\n },\r\n \"mismatch_action\": {\r\n \"default_value\": \"N/A\"\r\n }\r\n }\r\n }\r\n ]\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"with_detail\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sample_files.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Content-Type: multipart/form-data",
"x-ti-app-id: <api-key>",
"x-ti-secret-code: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://docflow.textin.com/api/app-api/sip/platform/v2/category/create"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"workspace_id\"\r\n\r\n1234567890\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nInvoice\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"extract_model\"\r\n\r\nAcgpt\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sample_files\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fields\"\r\n\r\n{\r\n \"name\": \"Invoice Code\",\r\n \"description\": \"Invoice code description\",\r\n \"prompt\": \"<string>\",\r\n \"use_prompt\": true,\r\n \"alias\": [\r\n \"Invoice No.\",\r\n \"Bill Number\"\r\n ],\r\n \"identity\": \"invoice_number\",\r\n \"multi_value\": true,\r\n \"duplicate_value_distinct\": true,\r\n \"transform_settings\": {\r\n \"datetime_settings\": {\r\n \"format\": \"yyyy-MM-dd\"\r\n },\r\n \"enumerate_settings\": {\r\n \"items\": [\r\n \"VAT Special Invoice\",\r\n \"VAT General Invoice\",\r\n \"Electronic Invoice\"\r\n ]\r\n },\r\n \"regex_settings\": {\r\n \"match\": \"^(\\\\d{4})-(\\\\d{2})-(\\\\d{2})$\",\r\n \"replace\": \"$1/$2/$3\"\r\n },\r\n \"mismatch_action\": {\r\n \"default_value\": \"N/A\"\r\n }\r\n }\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"category_prompt\"\r\n\r\nVAT invoice, including fields such as invoice code, invoice number, etc.\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tables\"\r\n\r\n{\r\n \"name\": \"Detail Table\",\r\n \"prompt\": \"<string>\",\r\n \"collect_from_multi_table\": true,\r\n \"fields\": [\r\n {\r\n \"name\": \"Invoice Code\",\r\n \"description\": \"Invoice code description\",\r\n \"prompt\": \"<string>\",\r\n \"use_prompt\": true,\r\n \"alias\": [\r\n \"Invoice No.\",\r\n \"Bill Number\"\r\n ],\r\n \"identity\": \"invoice_number\",\r\n \"multi_value\": true,\r\n \"duplicate_value_distinct\": true,\r\n \"transform_settings\": {\r\n \"datetime_settings\": {\r\n \"format\": \"yyyy-MM-dd\"\r\n },\r\n \"enumerate_settings\": {\r\n \"items\": [\r\n \"VAT Special Invoice\",\r\n \"VAT General Invoice\",\r\n \"Electronic Invoice\"\r\n ]\r\n },\r\n \"regex_settings\": {\r\n \"match\": \"^(\\\\d{4})-(\\\\d{2})-(\\\\d{2})$\",\r\n \"replace\": \"$1/$2/$3\"\r\n },\r\n \"mismatch_action\": {\r\n \"default_value\": \"N/A\"\r\n }\r\n }\r\n }\r\n ]\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"with_detail\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sample_files.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-ti-app-id", "<api-key>")
req.Header.Add("x-ti-secret-code", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://docflow.textin.com/api/app-api/sip/platform/v2/category/create")
.header("x-ti-app-id", "<api-key>")
.header("x-ti-secret-code", "<api-key>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"workspace_id\"\r\n\r\n1234567890\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nInvoice\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"extract_model\"\r\n\r\nAcgpt\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sample_files\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fields\"\r\n\r\n{\r\n \"name\": \"Invoice Code\",\r\n \"description\": \"Invoice code description\",\r\n \"prompt\": \"<string>\",\r\n \"use_prompt\": true,\r\n \"alias\": [\r\n \"Invoice No.\",\r\n \"Bill Number\"\r\n ],\r\n \"identity\": \"invoice_number\",\r\n \"multi_value\": true,\r\n \"duplicate_value_distinct\": true,\r\n \"transform_settings\": {\r\n \"datetime_settings\": {\r\n \"format\": \"yyyy-MM-dd\"\r\n },\r\n \"enumerate_settings\": {\r\n \"items\": [\r\n \"VAT Special Invoice\",\r\n \"VAT General Invoice\",\r\n \"Electronic Invoice\"\r\n ]\r\n },\r\n \"regex_settings\": {\r\n \"match\": \"^(\\\\d{4})-(\\\\d{2})-(\\\\d{2})$\",\r\n \"replace\": \"$1/$2/$3\"\r\n },\r\n \"mismatch_action\": {\r\n \"default_value\": \"N/A\"\r\n }\r\n }\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"category_prompt\"\r\n\r\nVAT invoice, including fields such as invoice code, invoice number, etc.\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tables\"\r\n\r\n{\r\n \"name\": \"Detail Table\",\r\n \"prompt\": \"<string>\",\r\n \"collect_from_multi_table\": true,\r\n \"fields\": [\r\n {\r\n \"name\": \"Invoice Code\",\r\n \"description\": \"Invoice code description\",\r\n \"prompt\": \"<string>\",\r\n \"use_prompt\": true,\r\n \"alias\": [\r\n \"Invoice No.\",\r\n \"Bill Number\"\r\n ],\r\n \"identity\": \"invoice_number\",\r\n \"multi_value\": true,\r\n \"duplicate_value_distinct\": true,\r\n \"transform_settings\": {\r\n \"datetime_settings\": {\r\n \"format\": \"yyyy-MM-dd\"\r\n },\r\n \"enumerate_settings\": {\r\n \"items\": [\r\n \"VAT Special Invoice\",\r\n \"VAT General Invoice\",\r\n \"Electronic Invoice\"\r\n ]\r\n },\r\n \"regex_settings\": {\r\n \"match\": \"^(\\\\d{4})-(\\\\d{2})-(\\\\d{2})$\",\r\n \"replace\": \"$1/$2/$3\"\r\n },\r\n \"mismatch_action\": {\r\n \"default_value\": \"N/A\"\r\n }\r\n }\r\n }\r\n ]\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"with_detail\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sample_files.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://docflow.textin.com/api/app-api/sip/platform/v2/category/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-ti-app-id"] = '<api-key>'
request["x-ti-secret-code"] = '<api-key>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"workspace_id\"\r\n\r\n1234567890\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nInvoice\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"extract_model\"\r\n\r\nAcgpt\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sample_files\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fields\"\r\n\r\n{\r\n \"name\": \"Invoice Code\",\r\n \"description\": \"Invoice code description\",\r\n \"prompt\": \"<string>\",\r\n \"use_prompt\": true,\r\n \"alias\": [\r\n \"Invoice No.\",\r\n \"Bill Number\"\r\n ],\r\n \"identity\": \"invoice_number\",\r\n \"multi_value\": true,\r\n \"duplicate_value_distinct\": true,\r\n \"transform_settings\": {\r\n \"datetime_settings\": {\r\n \"format\": \"yyyy-MM-dd\"\r\n },\r\n \"enumerate_settings\": {\r\n \"items\": [\r\n \"VAT Special Invoice\",\r\n \"VAT General Invoice\",\r\n \"Electronic Invoice\"\r\n ]\r\n },\r\n \"regex_settings\": {\r\n \"match\": \"^(\\\\d{4})-(\\\\d{2})-(\\\\d{2})$\",\r\n \"replace\": \"$1/$2/$3\"\r\n },\r\n \"mismatch_action\": {\r\n \"default_value\": \"N/A\"\r\n }\r\n }\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"category_prompt\"\r\n\r\nVAT invoice, including fields such as invoice code, invoice number, etc.\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tables\"\r\n\r\n{\r\n \"name\": \"Detail Table\",\r\n \"prompt\": \"<string>\",\r\n \"collect_from_multi_table\": true,\r\n \"fields\": [\r\n {\r\n \"name\": \"Invoice Code\",\r\n \"description\": \"Invoice code description\",\r\n \"prompt\": \"<string>\",\r\n \"use_prompt\": true,\r\n \"alias\": [\r\n \"Invoice No.\",\r\n \"Bill Number\"\r\n ],\r\n \"identity\": \"invoice_number\",\r\n \"multi_value\": true,\r\n \"duplicate_value_distinct\": true,\r\n \"transform_settings\": {\r\n \"datetime_settings\": {\r\n \"format\": \"yyyy-MM-dd\"\r\n },\r\n \"enumerate_settings\": {\r\n \"items\": [\r\n \"VAT Special Invoice\",\r\n \"VAT General Invoice\",\r\n \"Electronic Invoice\"\r\n ]\r\n },\r\n \"regex_settings\": {\r\n \"match\": \"^(\\\\d{4})-(\\\\d{2})-(\\\\d{2})$\",\r\n \"replace\": \"$1/$2/$3\"\r\n },\r\n \"mismatch_action\": {\r\n \"default_value\": \"N/A\"\r\n }\r\n }\r\n }\r\n ]\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"with_detail\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sample_files.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"code": 200,
"msg": "<string>",
"result": {
"category_id": "1234567890",
"name": "<string>",
"description": "<string>",
"category_prompt": "<string>",
"category_keyword_rules": {
"positive_rules": [
{
"group_name": "Core invoice elements",
"min_hit": 2,
"words": [
"invoice number",
"buyer name",
"total amount"
]
}
],
"negative_rules": [
{
"group_name": "Core invoice elements",
"min_hit": 2,
"words": [
"invoice number",
"buyer name",
"total amount"
]
}
]
},
"extract_model": "<string>",
"enabled": 123,
"fields": [
{
"name": "Invoice Code",
"description": "Invoice code description",
"prompt": "<string>",
"use_prompt": true,
"alias": [
"Invoice No.",
"Bill Number"
],
"identity": "invoice_number",
"multi_value": true,
"duplicate_value_distinct": true,
"transform_settings": {
"type": "datetime",
"datetime_settings": {
"format": "yyyy-MM-dd"
},
"enumerate_settings": {
"items": [
"VAT Special Invoice",
"VAT General Invoice",
"Electronic Invoice"
]
},
"regex_settings": {
"match": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"replace": "$1/$2/$3"
},
"mismatch_action": {
"mode": "default",
"default_value": "N/A"
}
},
"id": "1234567890",
"enabled": 0,
"extract_model": "Acgpt"
}
],
"tables": [
{
"id": "1234567890",
"name": "Table 1",
"description": "Table description",
"prompt": "Extract item name, quantity and amount from each row",
"collect_from_multi_table": true,
"extract_model": "Acgpt",
"fields": [
{
"name": "Invoice Code",
"description": "Invoice code description",
"prompt": "<string>",
"use_prompt": true,
"alias": [
"Invoice No.",
"Bill Number"
],
"identity": "invoice_number",
"multi_value": true,
"duplicate_value_distinct": true,
"transform_settings": {
"type": "datetime",
"datetime_settings": {
"format": "yyyy-MM-dd"
},
"enumerate_settings": {
"items": [
"VAT Special Invoice",
"VAT General Invoice",
"Electronic Invoice"
]
},
"regex_settings": {
"match": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"replace": "$1/$2/$3"
},
"mismatch_action": {
"mode": "default",
"default_value": "N/A"
}
},
"id": "1234567890",
"enabled": 0,
"extract_model": "Acgpt"
}
]
}
],
"samples": [
{
"sample_id": "1234567890",
"file_name": "invoice_sample.pdf"
}
]
}
}Create File Category
Create a new file category in the specified workspace, requiring at least one sample file and at least one field configuration.
Supports one-stop creation: you can pass the tables parameter to create tables with nested fields simultaneously.
Like fields and tables, pass category_keyword_rules as a JSON string form field. Same-type duplicate rule groups are not allowed in other enabled categories in the workspace. Parameter validation error codes: 1005025065–1005025069; cross-category rule-group conflicts reuse 1005015019.
curl --request POST \
--url https://docflow.textin.com/api/app-api/sip/platform/v2/category/create \
--header 'Content-Type: multipart/form-data' \
--header 'x-ti-app-id: <api-key>' \
--header 'x-ti-secret-code: <api-key>' \
--form workspace_id=1234567890 \
--form name=Invoice \
--form extract_model=Acgpt \
--form 'sample_files=<string>' \
--form 'fields={
"name": "Invoice Code",
"description": "Invoice code description",
"prompt": "<string>",
"use_prompt": true,
"alias": [
"Invoice No.",
"Bill Number"
],
"identity": "invoice_number",
"multi_value": true,
"duplicate_value_distinct": true,
"transform_settings": {
"datetime_settings": {
"format": "yyyy-MM-dd"
},
"enumerate_settings": {
"items": [
"VAT Special Invoice",
"VAT General Invoice",
"Electronic Invoice"
]
},
"regex_settings": {
"match": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"replace": "$1/$2/$3"
},
"mismatch_action": {
"default_value": "N/A"
}
}
}' \
--form 'category_prompt=VAT invoice, including fields such as invoice code, invoice number, etc.' \
--form 'description=<string>' \
--form 'tables={
"name": "Detail Table",
"prompt": "<string>",
"collect_from_multi_table": true,
"fields": [
{
"name": "Invoice Code",
"description": "Invoice code description",
"prompt": "<string>",
"use_prompt": true,
"alias": [
"Invoice No.",
"Bill Number"
],
"identity": "invoice_number",
"multi_value": true,
"duplicate_value_distinct": true,
"transform_settings": {
"datetime_settings": {
"format": "yyyy-MM-dd"
},
"enumerate_settings": {
"items": [
"VAT Special Invoice",
"VAT General Invoice",
"Electronic Invoice"
]
},
"regex_settings": {
"match": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"replace": "$1/$2/$3"
},
"mismatch_action": {
"default_value": "N/A"
}
}
}
]
}' \
--form with_detail=true \
--form sample_files.items='@example-file'import requests
url = "https://docflow.textin.com/api/app-api/sip/platform/v2/category/create"
files = { "sample_files.items": ("example-file", open("example-file", "rb")) }
payload = {
"workspace_id": "1234567890",
"name": "Invoice",
"extract_model": "Acgpt",
"sample_files": "<string>",
"fields": "{
\"name\": \"Invoice Code\",
\"description\": \"Invoice code description\",
\"prompt\": \"<string>\",
\"use_prompt\": true,
\"alias\": [
\"Invoice No.\",
\"Bill Number\"
],
\"identity\": \"invoice_number\",
\"multi_value\": true,
\"duplicate_value_distinct\": true,
\"transform_settings\": {
\"datetime_settings\": {
\"format\": \"yyyy-MM-dd\"
},
\"enumerate_settings\": {
\"items\": [
\"VAT Special Invoice\",
\"VAT General Invoice\",
\"Electronic Invoice\"
]
},
\"regex_settings\": {
\"match\": \"^(\\d{4})-(\\d{2})-(\\d{2})$\",
\"replace\": \"$1/$2/$3\"
},
\"mismatch_action\": {
\"default_value\": \"N/A\"
}
}
}",
"category_prompt": "VAT invoice, including fields such as invoice code, invoice number, etc.",
"description": "<string>",
"tables": "{
\"name\": \"Detail Table\",
\"prompt\": \"<string>\",
\"collect_from_multi_table\": true,
\"fields\": [
{
\"name\": \"Invoice Code\",
\"description\": \"Invoice code description\",
\"prompt\": \"<string>\",
\"use_prompt\": true,
\"alias\": [
\"Invoice No.\",
\"Bill Number\"
],
\"identity\": \"invoice_number\",
\"multi_value\": true,
\"duplicate_value_distinct\": true,
\"transform_settings\": {
\"datetime_settings\": {
\"format\": \"yyyy-MM-dd\"
},
\"enumerate_settings\": {
\"items\": [
\"VAT Special Invoice\",
\"VAT General Invoice\",
\"Electronic Invoice\"
]
},
\"regex_settings\": {
\"match\": \"^(\\d{4})-(\\d{2})-(\\d{2})$\",
\"replace\": \"$1/$2/$3\"
},
\"mismatch_action\": {
\"default_value\": \"N/A\"
}
}
}
]
}",
"with_detail": "true"
}
headers = {
"x-ti-app-id": "<api-key>",
"x-ti-secret-code": "<api-key>"
}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('workspace_id', '1234567890');
form.append('name', 'Invoice');
form.append('extract_model', 'Acgpt');
form.append('sample_files', '<string>');
form.append('fields', '{
"name": "Invoice Code",
"description": "Invoice code description",
"prompt": "<string>",
"use_prompt": true,
"alias": [
"Invoice No.",
"Bill Number"
],
"identity": "invoice_number",
"multi_value": true,
"duplicate_value_distinct": true,
"transform_settings": {
"datetime_settings": {
"format": "yyyy-MM-dd"
},
"enumerate_settings": {
"items": [
"VAT Special Invoice",
"VAT General Invoice",
"Electronic Invoice"
]
},
"regex_settings": {
"match": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"replace": "$1/$2/$3"
},
"mismatch_action": {
"default_value": "N/A"
}
}
}');
form.append('category_prompt', 'VAT invoice, including fields such as invoice code, invoice number, etc.');
form.append('description', '<string>');
form.append('tables', '{
"name": "Detail Table",
"prompt": "<string>",
"collect_from_multi_table": true,
"fields": [
{
"name": "Invoice Code",
"description": "Invoice code description",
"prompt": "<string>",
"use_prompt": true,
"alias": [
"Invoice No.",
"Bill Number"
],
"identity": "invoice_number",
"multi_value": true,
"duplicate_value_distinct": true,
"transform_settings": {
"datetime_settings": {
"format": "yyyy-MM-dd"
},
"enumerate_settings": {
"items": [
"VAT Special Invoice",
"VAT General Invoice",
"Electronic Invoice"
]
},
"regex_settings": {
"match": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"replace": "$1/$2/$3"
},
"mismatch_action": {
"default_value": "N/A"
}
}
}
]
}');
form.append('with_detail', 'true');
form.append('sample_files.items', '{
"fileName": "example-file"
}');
const options = {
method: 'POST',
headers: {'x-ti-app-id': '<api-key>', 'x-ti-secret-code': '<api-key>'}
};
options.body = form;
fetch('https://docflow.textin.com/api/app-api/sip/platform/v2/category/create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://docflow.textin.com/api/app-api/sip/platform/v2/category/create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"workspace_id\"\r\n\r\n1234567890\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nInvoice\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"extract_model\"\r\n\r\nAcgpt\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sample_files\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fields\"\r\n\r\n{\r\n \"name\": \"Invoice Code\",\r\n \"description\": \"Invoice code description\",\r\n \"prompt\": \"<string>\",\r\n \"use_prompt\": true,\r\n \"alias\": [\r\n \"Invoice No.\",\r\n \"Bill Number\"\r\n ],\r\n \"identity\": \"invoice_number\",\r\n \"multi_value\": true,\r\n \"duplicate_value_distinct\": true,\r\n \"transform_settings\": {\r\n \"datetime_settings\": {\r\n \"format\": \"yyyy-MM-dd\"\r\n },\r\n \"enumerate_settings\": {\r\n \"items\": [\r\n \"VAT Special Invoice\",\r\n \"VAT General Invoice\",\r\n \"Electronic Invoice\"\r\n ]\r\n },\r\n \"regex_settings\": {\r\n \"match\": \"^(\\\\d{4})-(\\\\d{2})-(\\\\d{2})$\",\r\n \"replace\": \"$1/$2/$3\"\r\n },\r\n \"mismatch_action\": {\r\n \"default_value\": \"N/A\"\r\n }\r\n }\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"category_prompt\"\r\n\r\nVAT invoice, including fields such as invoice code, invoice number, etc.\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tables\"\r\n\r\n{\r\n \"name\": \"Detail Table\",\r\n \"prompt\": \"<string>\",\r\n \"collect_from_multi_table\": true,\r\n \"fields\": [\r\n {\r\n \"name\": \"Invoice Code\",\r\n \"description\": \"Invoice code description\",\r\n \"prompt\": \"<string>\",\r\n \"use_prompt\": true,\r\n \"alias\": [\r\n \"Invoice No.\",\r\n \"Bill Number\"\r\n ],\r\n \"identity\": \"invoice_number\",\r\n \"multi_value\": true,\r\n \"duplicate_value_distinct\": true,\r\n \"transform_settings\": {\r\n \"datetime_settings\": {\r\n \"format\": \"yyyy-MM-dd\"\r\n },\r\n \"enumerate_settings\": {\r\n \"items\": [\r\n \"VAT Special Invoice\",\r\n \"VAT General Invoice\",\r\n \"Electronic Invoice\"\r\n ]\r\n },\r\n \"regex_settings\": {\r\n \"match\": \"^(\\\\d{4})-(\\\\d{2})-(\\\\d{2})$\",\r\n \"replace\": \"$1/$2/$3\"\r\n },\r\n \"mismatch_action\": {\r\n \"default_value\": \"N/A\"\r\n }\r\n }\r\n }\r\n ]\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"with_detail\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sample_files.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Content-Type: multipart/form-data",
"x-ti-app-id: <api-key>",
"x-ti-secret-code: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://docflow.textin.com/api/app-api/sip/platform/v2/category/create"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"workspace_id\"\r\n\r\n1234567890\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nInvoice\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"extract_model\"\r\n\r\nAcgpt\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sample_files\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fields\"\r\n\r\n{\r\n \"name\": \"Invoice Code\",\r\n \"description\": \"Invoice code description\",\r\n \"prompt\": \"<string>\",\r\n \"use_prompt\": true,\r\n \"alias\": [\r\n \"Invoice No.\",\r\n \"Bill Number\"\r\n ],\r\n \"identity\": \"invoice_number\",\r\n \"multi_value\": true,\r\n \"duplicate_value_distinct\": true,\r\n \"transform_settings\": {\r\n \"datetime_settings\": {\r\n \"format\": \"yyyy-MM-dd\"\r\n },\r\n \"enumerate_settings\": {\r\n \"items\": [\r\n \"VAT Special Invoice\",\r\n \"VAT General Invoice\",\r\n \"Electronic Invoice\"\r\n ]\r\n },\r\n \"regex_settings\": {\r\n \"match\": \"^(\\\\d{4})-(\\\\d{2})-(\\\\d{2})$\",\r\n \"replace\": \"$1/$2/$3\"\r\n },\r\n \"mismatch_action\": {\r\n \"default_value\": \"N/A\"\r\n }\r\n }\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"category_prompt\"\r\n\r\nVAT invoice, including fields such as invoice code, invoice number, etc.\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tables\"\r\n\r\n{\r\n \"name\": \"Detail Table\",\r\n \"prompt\": \"<string>\",\r\n \"collect_from_multi_table\": true,\r\n \"fields\": [\r\n {\r\n \"name\": \"Invoice Code\",\r\n \"description\": \"Invoice code description\",\r\n \"prompt\": \"<string>\",\r\n \"use_prompt\": true,\r\n \"alias\": [\r\n \"Invoice No.\",\r\n \"Bill Number\"\r\n ],\r\n \"identity\": \"invoice_number\",\r\n \"multi_value\": true,\r\n \"duplicate_value_distinct\": true,\r\n \"transform_settings\": {\r\n \"datetime_settings\": {\r\n \"format\": \"yyyy-MM-dd\"\r\n },\r\n \"enumerate_settings\": {\r\n \"items\": [\r\n \"VAT Special Invoice\",\r\n \"VAT General Invoice\",\r\n \"Electronic Invoice\"\r\n ]\r\n },\r\n \"regex_settings\": {\r\n \"match\": \"^(\\\\d{4})-(\\\\d{2})-(\\\\d{2})$\",\r\n \"replace\": \"$1/$2/$3\"\r\n },\r\n \"mismatch_action\": {\r\n \"default_value\": \"N/A\"\r\n }\r\n }\r\n }\r\n ]\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"with_detail\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sample_files.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-ti-app-id", "<api-key>")
req.Header.Add("x-ti-secret-code", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://docflow.textin.com/api/app-api/sip/platform/v2/category/create")
.header("x-ti-app-id", "<api-key>")
.header("x-ti-secret-code", "<api-key>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"workspace_id\"\r\n\r\n1234567890\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nInvoice\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"extract_model\"\r\n\r\nAcgpt\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sample_files\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fields\"\r\n\r\n{\r\n \"name\": \"Invoice Code\",\r\n \"description\": \"Invoice code description\",\r\n \"prompt\": \"<string>\",\r\n \"use_prompt\": true,\r\n \"alias\": [\r\n \"Invoice No.\",\r\n \"Bill Number\"\r\n ],\r\n \"identity\": \"invoice_number\",\r\n \"multi_value\": true,\r\n \"duplicate_value_distinct\": true,\r\n \"transform_settings\": {\r\n \"datetime_settings\": {\r\n \"format\": \"yyyy-MM-dd\"\r\n },\r\n \"enumerate_settings\": {\r\n \"items\": [\r\n \"VAT Special Invoice\",\r\n \"VAT General Invoice\",\r\n \"Electronic Invoice\"\r\n ]\r\n },\r\n \"regex_settings\": {\r\n \"match\": \"^(\\\\d{4})-(\\\\d{2})-(\\\\d{2})$\",\r\n \"replace\": \"$1/$2/$3\"\r\n },\r\n \"mismatch_action\": {\r\n \"default_value\": \"N/A\"\r\n }\r\n }\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"category_prompt\"\r\n\r\nVAT invoice, including fields such as invoice code, invoice number, etc.\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tables\"\r\n\r\n{\r\n \"name\": \"Detail Table\",\r\n \"prompt\": \"<string>\",\r\n \"collect_from_multi_table\": true,\r\n \"fields\": [\r\n {\r\n \"name\": \"Invoice Code\",\r\n \"description\": \"Invoice code description\",\r\n \"prompt\": \"<string>\",\r\n \"use_prompt\": true,\r\n \"alias\": [\r\n \"Invoice No.\",\r\n \"Bill Number\"\r\n ],\r\n \"identity\": \"invoice_number\",\r\n \"multi_value\": true,\r\n \"duplicate_value_distinct\": true,\r\n \"transform_settings\": {\r\n \"datetime_settings\": {\r\n \"format\": \"yyyy-MM-dd\"\r\n },\r\n \"enumerate_settings\": {\r\n \"items\": [\r\n \"VAT Special Invoice\",\r\n \"VAT General Invoice\",\r\n \"Electronic Invoice\"\r\n ]\r\n },\r\n \"regex_settings\": {\r\n \"match\": \"^(\\\\d{4})-(\\\\d{2})-(\\\\d{2})$\",\r\n \"replace\": \"$1/$2/$3\"\r\n },\r\n \"mismatch_action\": {\r\n \"default_value\": \"N/A\"\r\n }\r\n }\r\n }\r\n ]\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"with_detail\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sample_files.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://docflow.textin.com/api/app-api/sip/platform/v2/category/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-ti-app-id"] = '<api-key>'
request["x-ti-secret-code"] = '<api-key>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"workspace_id\"\r\n\r\n1234567890\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nInvoice\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"extract_model\"\r\n\r\nAcgpt\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sample_files\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"fields\"\r\n\r\n{\r\n \"name\": \"Invoice Code\",\r\n \"description\": \"Invoice code description\",\r\n \"prompt\": \"<string>\",\r\n \"use_prompt\": true,\r\n \"alias\": [\r\n \"Invoice No.\",\r\n \"Bill Number\"\r\n ],\r\n \"identity\": \"invoice_number\",\r\n \"multi_value\": true,\r\n \"duplicate_value_distinct\": true,\r\n \"transform_settings\": {\r\n \"datetime_settings\": {\r\n \"format\": \"yyyy-MM-dd\"\r\n },\r\n \"enumerate_settings\": {\r\n \"items\": [\r\n \"VAT Special Invoice\",\r\n \"VAT General Invoice\",\r\n \"Electronic Invoice\"\r\n ]\r\n },\r\n \"regex_settings\": {\r\n \"match\": \"^(\\\\d{4})-(\\\\d{2})-(\\\\d{2})$\",\r\n \"replace\": \"$1/$2/$3\"\r\n },\r\n \"mismatch_action\": {\r\n \"default_value\": \"N/A\"\r\n }\r\n }\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"category_prompt\"\r\n\r\nVAT invoice, including fields such as invoice code, invoice number, etc.\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tables\"\r\n\r\n{\r\n \"name\": \"Detail Table\",\r\n \"prompt\": \"<string>\",\r\n \"collect_from_multi_table\": true,\r\n \"fields\": [\r\n {\r\n \"name\": \"Invoice Code\",\r\n \"description\": \"Invoice code description\",\r\n \"prompt\": \"<string>\",\r\n \"use_prompt\": true,\r\n \"alias\": [\r\n \"Invoice No.\",\r\n \"Bill Number\"\r\n ],\r\n \"identity\": \"invoice_number\",\r\n \"multi_value\": true,\r\n \"duplicate_value_distinct\": true,\r\n \"transform_settings\": {\r\n \"datetime_settings\": {\r\n \"format\": \"yyyy-MM-dd\"\r\n },\r\n \"enumerate_settings\": {\r\n \"items\": [\r\n \"VAT Special Invoice\",\r\n \"VAT General Invoice\",\r\n \"Electronic Invoice\"\r\n ]\r\n },\r\n \"regex_settings\": {\r\n \"match\": \"^(\\\\d{4})-(\\\\d{2})-(\\\\d{2})$\",\r\n \"replace\": \"$1/$2/$3\"\r\n },\r\n \"mismatch_action\": {\r\n \"default_value\": \"N/A\"\r\n }\r\n }\r\n }\r\n ]\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"with_detail\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"sample_files.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"code": 200,
"msg": "<string>",
"result": {
"category_id": "1234567890",
"name": "<string>",
"description": "<string>",
"category_prompt": "<string>",
"category_keyword_rules": {
"positive_rules": [
{
"group_name": "Core invoice elements",
"min_hit": 2,
"words": [
"invoice number",
"buyer name",
"total amount"
]
}
],
"negative_rules": [
{
"group_name": "Core invoice elements",
"min_hit": 2,
"words": [
"invoice number",
"buyer name",
"total amount"
]
}
]
},
"extract_model": "<string>",
"enabled": 123,
"fields": [
{
"name": "Invoice Code",
"description": "Invoice code description",
"prompt": "<string>",
"use_prompt": true,
"alias": [
"Invoice No.",
"Bill Number"
],
"identity": "invoice_number",
"multi_value": true,
"duplicate_value_distinct": true,
"transform_settings": {
"type": "datetime",
"datetime_settings": {
"format": "yyyy-MM-dd"
},
"enumerate_settings": {
"items": [
"VAT Special Invoice",
"VAT General Invoice",
"Electronic Invoice"
]
},
"regex_settings": {
"match": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"replace": "$1/$2/$3"
},
"mismatch_action": {
"mode": "default",
"default_value": "N/A"
}
},
"id": "1234567890",
"enabled": 0,
"extract_model": "Acgpt"
}
],
"tables": [
{
"id": "1234567890",
"name": "Table 1",
"description": "Table description",
"prompt": "Extract item name, quantity and amount from each row",
"collect_from_multi_table": true,
"extract_model": "Acgpt",
"fields": [
{
"name": "Invoice Code",
"description": "Invoice code description",
"prompt": "<string>",
"use_prompt": true,
"alias": [
"Invoice No.",
"Bill Number"
],
"identity": "invoice_number",
"multi_value": true,
"duplicate_value_distinct": true,
"transform_settings": {
"type": "datetime",
"datetime_settings": {
"format": "yyyy-MM-dd"
},
"enumerate_settings": {
"items": [
"VAT Special Invoice",
"VAT General Invoice",
"Electronic Invoice"
]
},
"regex_settings": {
"match": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"replace": "$1/$2/$3"
},
"mismatch_action": {
"mode": "default",
"default_value": "N/A"
}
},
"id": "1234567890",
"enabled": 0,
"extract_model": "Acgpt"
}
]
}
],
"samples": [
{
"sample_id": "1234567890",
"file_name": "invoice_sample.pdf"
}
]
}
}Body
Workspace ID
"1234567890"
File category name
50"Invoice"
Extraction model
- Auto: Automatically matches the extraction model
- Acgpt: Fast speed with stable extraction results
- Acgpt-VL: VLM, suitable for simple extraction (≤10 pages)
- DF-M1: Suitable for complex document understanding
Auto, Acgpt, Acgpt-VL, DF-M1 "Acgpt"
Sample file list; at least one file is required, and a category can contain at most 20 sample files in total
1 - 20 elementsField configuration list, at least one field must be configured
1Show child attributes
Show child attributes
Prompt for classification
150"VAT invoice, including fields such as invoice code, invoice number, etc."
Category keyword rules. Positive groups are ORed; matching a negative group excludes the category. A category supports at most 10 positive groups and 1 negative group. Duplicate same-type groups are not allowed, and positive and negative rules must not contain the same keyword.
Show child attributes
Show child attributes
File category description
Optional, table configuration list (one-stop creation), supports nested fields
Show child attributes
Show child attributes
Whether to return full details. When true, the response includes complete category info (with fields, tables, samples). When not set or false, only category_id is returned.

