Upload document
curl --request POST \
--url https://api.entendre.finance/v1/vault/documents \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"filename": "note.txt",
"base64": "SGVsbG8="
}
'const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({filename: 'note.txt', base64: 'SGVsbG8='})
};
fetch('https://api.entendre.finance/v1/vault/documents', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.entendre.finance/v1/vault/documents"
payload = {
"filename": "note.txt",
"base64": "SGVsbG8="
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"data": {
"document_id": "doc_6f31e8c4-41ce-47af-9db7-3ad295a0a601",
"filename": "invoice.pdf",
"document_type": "bill",
"summary": "Vendor invoice.",
"message": "File uploaded"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid path, query or request body.",
"request_id": "req_example"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required.",
"request_id": "req_example"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Insufficient access to organization",
"request_id": "req_example"
}
}{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Resource not found",
"request_id": "req_example"
}
}{
"error": {
"code": "CONFLICT",
"message": "The resource state does not allow this operation.",
"request_id": "req_example"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 30s.",
"request_id": "req_example"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error",
"request_id": "req_example"
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Service unavailable.",
"request_id": "req_example"
}
}Documents
Upload document
Uploads a base64-encoded file and returns its document ID and extracted summary.
POST
/
v1
/
vault
/
documents
Upload document
curl --request POST \
--url https://api.entendre.finance/v1/vault/documents \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"filename": "note.txt",
"base64": "SGVsbG8="
}
'const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({filename: 'note.txt', base64: 'SGVsbG8='})
};
fetch('https://api.entendre.finance/v1/vault/documents', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.entendre.finance/v1/vault/documents"
payload = {
"filename": "note.txt",
"base64": "SGVsbG8="
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"data": {
"document_id": "doc_6f31e8c4-41ce-47af-9db7-3ad295a0a601",
"filename": "invoice.pdf",
"document_type": "bill",
"summary": "Vendor invoice.",
"message": "File uploaded"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid path, query or request body.",
"request_id": "req_example"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required.",
"request_id": "req_example"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Insufficient access to organization",
"request_id": "req_example"
}
}{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Resource not found",
"request_id": "req_example"
}
}{
"error": {
"code": "CONFLICT",
"message": "The resource state does not allow this operation.",
"request_id": "req_example"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 30s.",
"request_id": "req_example"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error",
"request_id": "req_example"
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Service unavailable.",
"request_id": "req_example"
}
}Requires
write:vault and a user-associated API key. Entendre classifies the document. A bill can also post a journal entry, so upload only files that you intend to store and process.Authorizations
Your organization API key. Some operations also need a key that is associated with a user; their pages say so.
Headers
Optional retry key. Check X-Idempotency-Applied before relying on replay protection.
Required string length:
1 - 255Body
application/json
Response
Uploaded document.
The uploaded document.
Show child attributes
Show child attributes