curl --request POST \
--url https://api.mycreditapp.ai/v1-beta/private-records/{record_id}/financial-files \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--header 'Requester-Organization-ID: <requester-organization-id>' \
--header 'Target-Organization-ID: <target-organization-id>' \
--form 'currency=<string>' \
--form file='@example-file'import requests
url = "https://api.mycreditapp.ai/v1-beta/private-records/{record_id}/financial-files"
files = { "file": ("example-file", open("example-file", "rb")) }
payload = { "currency": "<string>" }
headers = {
"Requester-Organization-ID": "<requester-organization-id>",
"Target-Organization-ID": "<target-organization-id>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('currency', '<string>');
form.append('file', '<string>');
const options = {
method: 'POST',
headers: {
'Requester-Organization-ID': '<requester-organization-id>',
'Target-Organization-ID': '<target-organization-id>',
Authorization: 'Bearer <token>'
}
};
options.body = form;
fetch('https://api.mycreditapp.ai/v1-beta/private-records/{record_id}/financial-files', 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://api.mycreditapp.ai/v1-beta/private-records/{record_id}/financial-files",
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=\"currency\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data",
"Requester-Organization-ID: <requester-organization-id>",
"Target-Organization-ID: <target-organization-id>"
],
]);
$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://api.mycreditapp.ai/v1-beta/private-records/{record_id}/financial-files"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"currency\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Requester-Organization-ID", "<requester-organization-id>")
req.Header.Add("Target-Organization-ID", "<target-organization-id>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.mycreditapp.ai/v1-beta/private-records/{record_id}/financial-files")
.header("Requester-Organization-ID", "<requester-organization-id>")
.header("Target-Organization-ID", "<target-organization-id>")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"currency\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mycreditapp.ai/v1-beta/private-records/{record_id}/financial-files")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Requester-Organization-ID"] = '<requester-organization-id>'
request["Target-Organization-ID"] = '<target-organization-id>'
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"currency\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"original_filename": "<string>",
"mime_type": "<string>",
"size_bytes": 123,
"sha256": "<string>",
"currency": "<string>",
"uploaded_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"file_message": "File processed successfully"
}{
"detail": [
{
"loc": [],
"msg": "Invalid currency code!",
"type": "request",
"code": "invalid_currency"
},
{
"loc": [],
"msg": "The file name is missing or invalid!",
"type": "request",
"code": "invalid_file_name"
},
{
"loc": [],
"msg": "Invalid file format (allowed formats: application/pdf)!",
"type": "request",
"code": "not_allowed_file_type"
},
{
"loc": [],
"msg": "Uploaded file size is larger than the allowed size (allowed size: 10485760 bytes)!",
"type": "request",
"code": "invalid_file_size"
},
{
"loc": [],
"msg": "Unsupported CRUD operation!",
"type": "request",
"code": "unsupported_crud_operation"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Token is required!",
"type": "token",
"code": "token_required"
},
{
"loc": [],
"msg": "The token has expired!",
"type": "token",
"code": "token_expired"
},
{
"loc": [],
"msg": "Invalid token!",
"type": "token",
"code": "invalid_token"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Access denied!",
"type": "request",
"code": "access_denied"
},
{
"loc": [],
"msg": "This functionality is only available with a subscription!",
"type": "subscription",
"code": "no_subscription"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Account not found!",
"type": "request",
"code": "account_not_found"
},
{
"loc": [],
"msg": "Organization not found!",
"type": "request",
"code": "organization_not_found"
},
{
"loc": [],
"msg": "Private record not found!",
"type": "request",
"code": "private_record_not_found"
}
]
}{
"detail": [
{
"loc": [],
"msg": "The account is in the process of being deleted! The Account's email can only be reused after its data has been completely deleted. The removal process may take up to 24 hours.",
"type": "request",
"code": "account_being_deleted"
},
{
"loc": [],
"msg": "The organization is in the process of being deleted! The removal process may take up to 24 hours.",
"type": "request",
"code": "organization_being_deleted"
}
]
}{
"detail": [
{
"loc": [],
"msg": "The request is too large!",
"type": "request",
"code": "request_too_large"
}
]
}{
"detail": [
{
"loc": [
"string",
0
],
"msg": "string",
"type": "string",
"code": "validation_error"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Error processing request, please try later!",
"type": "try_later",
"code": "internal_conflict_error"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Service is under maintenance, please try later!",
"type": "maintanance",
"code": "service_under_maintenance"
}
]
}Upload private record financial file
curl --request POST \
--url https://api.mycreditapp.ai/v1-beta/private-records/{record_id}/financial-files \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--header 'Requester-Organization-ID: <requester-organization-id>' \
--header 'Target-Organization-ID: <target-organization-id>' \
--form 'currency=<string>' \
--form file='@example-file'import requests
url = "https://api.mycreditapp.ai/v1-beta/private-records/{record_id}/financial-files"
files = { "file": ("example-file", open("example-file", "rb")) }
payload = { "currency": "<string>" }
headers = {
"Requester-Organization-ID": "<requester-organization-id>",
"Target-Organization-ID": "<target-organization-id>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('currency', '<string>');
form.append('file', '<string>');
const options = {
method: 'POST',
headers: {
'Requester-Organization-ID': '<requester-organization-id>',
'Target-Organization-ID': '<target-organization-id>',
Authorization: 'Bearer <token>'
}
};
options.body = form;
fetch('https://api.mycreditapp.ai/v1-beta/private-records/{record_id}/financial-files', 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://api.mycreditapp.ai/v1-beta/private-records/{record_id}/financial-files",
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=\"currency\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data",
"Requester-Organization-ID: <requester-organization-id>",
"Target-Organization-ID: <target-organization-id>"
],
]);
$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://api.mycreditapp.ai/v1-beta/private-records/{record_id}/financial-files"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"currency\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Requester-Organization-ID", "<requester-organization-id>")
req.Header.Add("Target-Organization-ID", "<target-organization-id>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.mycreditapp.ai/v1-beta/private-records/{record_id}/financial-files")
.header("Requester-Organization-ID", "<requester-organization-id>")
.header("Target-Organization-ID", "<target-organization-id>")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"currency\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mycreditapp.ai/v1-beta/private-records/{record_id}/financial-files")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Requester-Organization-ID"] = '<requester-organization-id>'
request["Target-Organization-ID"] = '<target-organization-id>'
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"currency\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"original_filename": "<string>",
"mime_type": "<string>",
"size_bytes": 123,
"sha256": "<string>",
"currency": "<string>",
"uploaded_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"file_message": "File processed successfully"
}{
"detail": [
{
"loc": [],
"msg": "Invalid currency code!",
"type": "request",
"code": "invalid_currency"
},
{
"loc": [],
"msg": "The file name is missing or invalid!",
"type": "request",
"code": "invalid_file_name"
},
{
"loc": [],
"msg": "Invalid file format (allowed formats: application/pdf)!",
"type": "request",
"code": "not_allowed_file_type"
},
{
"loc": [],
"msg": "Uploaded file size is larger than the allowed size (allowed size: 10485760 bytes)!",
"type": "request",
"code": "invalid_file_size"
},
{
"loc": [],
"msg": "Unsupported CRUD operation!",
"type": "request",
"code": "unsupported_crud_operation"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Token is required!",
"type": "token",
"code": "token_required"
},
{
"loc": [],
"msg": "The token has expired!",
"type": "token",
"code": "token_expired"
},
{
"loc": [],
"msg": "Invalid token!",
"type": "token",
"code": "invalid_token"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Access denied!",
"type": "request",
"code": "access_denied"
},
{
"loc": [],
"msg": "This functionality is only available with a subscription!",
"type": "subscription",
"code": "no_subscription"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Account not found!",
"type": "request",
"code": "account_not_found"
},
{
"loc": [],
"msg": "Organization not found!",
"type": "request",
"code": "organization_not_found"
},
{
"loc": [],
"msg": "Private record not found!",
"type": "request",
"code": "private_record_not_found"
}
]
}{
"detail": [
{
"loc": [],
"msg": "The account is in the process of being deleted! The Account's email can only be reused after its data has been completely deleted. The removal process may take up to 24 hours.",
"type": "request",
"code": "account_being_deleted"
},
{
"loc": [],
"msg": "The organization is in the process of being deleted! The removal process may take up to 24 hours.",
"type": "request",
"code": "organization_being_deleted"
}
]
}{
"detail": [
{
"loc": [],
"msg": "The request is too large!",
"type": "request",
"code": "request_too_large"
}
]
}{
"detail": [
{
"loc": [
"string",
0
],
"msg": "string",
"type": "string",
"code": "validation_error"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Error processing request, please try later!",
"type": "try_later",
"code": "internal_conflict_error"
}
]
}{
"detail": [
{
"loc": [],
"msg": "Service is under maintenance, please try later!",
"type": "maintanance",
"code": "service_under_maintenance"
}
]
}Authorizations
Bearer authentication using a JWT token. Provide a valid access token. Authorization header format: Authorization: Bearer <token>.
Headers
The unique identifier of the organization making the request. This ID is used to authorize the requester within the system.
"054b4106-174b-46b0-97f8-86d8d7b6f0af"
The unique identifier of the organization that is the target of the request.
The Target-Organization-ID may match the Requester-Organization-ID if the requester accesses their own resources.
If the Target-Organization-ID differs from the Requester-Organization-ID, the requester can access third-party resources if the requester has a connection with the target organization and is authorized to perform such actions.
"123e4567-e89b-12d3-a456-426614174000"
Path Parameters
Unique identifier of the private record
"b25e7b65-e46a-40d5-a0f2-0de8c2b354aa"
Response
Successful Response
Unique identifier of the financial file
"b267d0d3-496f-4592-a1ae-59c9d279ca64"
Original filename of the uploaded file
1 - 255"financials_2025.pdf"
MIME type of the uploaded file, must be on of: application/pdf
1 - 100"application/pdf"
"application/vnd.ms-excel"
Size of the file in bytes
524288
SHA-256 hash of the file
64"3a7bd3e2360a65d3b7b9b1d45c9f6b0b5c2e8d7f8b9c6e5f4a3d2c1b0e9f8a7d"
Processing status of the file
uploaded, processing, valid, invalid, failed Timestamp when the file was uploaded
"2025-12-12T12:34:56.123456"
Timestamp when the file was created
"2025-12-12T12:34:56.123456"
Timestamp when the file was updated
"2025-12-12T12:34:56.123456"
Optional message regarding the file
1000"File processed successfully"