Mark a reminder form as filed
curl --request POST \
--url https://api.melso.ai/v1/companies/{company_id}/tax-calendar/mark-filed \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"obligation_id": "<string>",
"period": "2026-Q3"
}
'import requests
url = "https://api.melso.ai/v1/companies/{company_id}/tax-calendar/mark-filed"
payload = {
"obligation_id": "<string>",
"period": "2026-Q3"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({obligation_id: '<string>', period: '2026-Q3'})
};
fetch('https://api.melso.ai/v1/companies/{company_id}/tax-calendar/mark-filed', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"obligation_id": "<string>",
"period": "2026-Q3",
"filing_status": "filed"
}{
"error": "lines[0].vat_rate must be 21, 10, 4 or 0",
"code": "invalid_invoice",
"request_id": "req_01JAB3K9X2"
}{
"error": "invalid token",
"code": "unauthorized",
"request_id": "req_01JAB3K9X2"
}{
"error": "invoice not found",
"code": "not_found",
"request_id": "req_01JAB3K9X2"
}{
"error": "The tax return changed or is not ready for approval",
"code": "version_conflict",
"request_id": "req_01JAB3K9X2"
}Tax calendar
Mark a reminder form as filed
Records that the company filed a form Melso only reminds of (for example a foral form or a monthly 303) by itself.
POST
/
companies
/
{company_id}
/
tax-calendar
/
mark-filed
Mark a reminder form as filed
curl --request POST \
--url https://api.melso.ai/v1/companies/{company_id}/tax-calendar/mark-filed \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"obligation_id": "<string>",
"period": "2026-Q3"
}
'import requests
url = "https://api.melso.ai/v1/companies/{company_id}/tax-calendar/mark-filed"
payload = {
"obligation_id": "<string>",
"period": "2026-Q3"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({obligation_id: '<string>', period: '2026-Q3'})
};
fetch('https://api.melso.ai/v1/companies/{company_id}/tax-calendar/mark-filed', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"obligation_id": "<string>",
"period": "2026-Q3",
"filing_status": "filed"
}{
"error": "lines[0].vat_rate must be 21, 10, 4 or 0",
"code": "invalid_invoice",
"request_id": "req_01JAB3K9X2"
}{
"error": "invalid token",
"code": "unauthorized",
"request_id": "req_01JAB3K9X2"
}{
"error": "invoice not found",
"code": "not_found",
"request_id": "req_01JAB3K9X2"
}{
"error": "The tax return changed or is not ready for approval",
"code": "version_conflict",
"request_id": "req_01JAB3K9X2"
}Live capability. Melso runs this in production today. Partner keys reach it once your partner account is enabled. See Availability.
A person decides. The company’s owner makes this call, signed in to Melso. Partner keys cannot make it: send the person the approval link instead. See Approvals and filing.
Authorizations
Your partner secret key, mk_live_… for real companies or mk_test_…
for test companies. Keep it on your servers. See
Authentication.
Path Parameters
The company's ID. Every company-scoped call works in exactly this company.
Body
application/json