-
Notifications
You must be signed in to change notification settings - Fork 0
API Usage Accounting
This page explains how third-party systems should call Accounting APIs in SimBiz 6 API V3.
https://<host>/api/v3
All accounting endpoints are protected.
Required headers:
Authorization: Bearer <token>
How to get token:
-
date_fromanddate_to:YYYY-MM-DD -
updated_fromandupdated_to:YYYY-MM-DD HH:MM:SS
| No. | Endpoint | Method | Purpose | Required Permission Scope |
|---|---|---|---|---|
| 1 | /api/v3/accounting/reference/accounts |
GET | List chart of accounts | accounting.reference.read |
| 2 | /api/v3/accounting/reference/currencies |
GET | List currencies | accounting.reference.read |
| 3 | /api/v3/accounting/reference/countries |
GET | List countries | accounting.reference.read |
| No. | Endpoint | Method | Purpose | Required Permission Scope |
|---|---|---|---|---|
| 4 | /api/v3/accounting/journal-entries |
GET | List journal entries | accounting.journal_entry.read |
| 5 | /api/v3/accounting/journal-entries/{id} |
GET | Get journal entry by id | accounting.journal_entry.read |
| 6 | /api/v3/accounting/journal-entries |
POST | Create journal entry | accounting.journal_entry.write |
| 7 | /api/v3/accounting/journal-entries/{id}/validate |
POST | Validate journal entry action | accounting.journal_entry.write |
| 8 | /api/v3/accounting/journal-entries/{id}/confirm |
POST | Confirm journal entry | accounting.journal_entry.write |
| 9 | /api/v3/accounting/journal-entries/{id}/void |
POST | Void journal entry | accounting.journal_entry.void |
| 10 | /api/v3/accounting/journal-entries/{id} |
DELETE | Delete journal entry | accounting.journal_entry.delete |
| No. | Endpoint | Method | Purpose | Required Permission Scope |
|---|---|---|---|---|
| 11 | /api/v3/accounting/credit-control/bypass/check |
POST | Validate bypass code | accounting.credit_control.write |
| 12 | /api/v3/accounting/credit-control/bypass-codes |
GET | List bypass code options | accounting.credit_control.read |
| No. | Endpoint | Method | Purpose | Required Permission Scope |
|---|---|---|---|---|
| 13 | /api/v3/accounting/reports/debtors-aging |
GET | Debtors aging report | accounting.report.debtors.read |
| 14 | /api/v3/accounting/reports/creditors-aging |
GET | Creditors aging report | accounting.report.creditors.read |
| No. | Endpoint | Method | Purpose | Required Permission Scope |
|---|---|---|---|---|
| 15 | /api/v3/accounting/recurring-invoices/generate |
POST | Generate recurring invoices | accounting.recurring_invoice.generate |
| Parameter | Type | Required | Notes |
|---|---|---|---|
page |
int | No | default 1
|
per_page |
int | No | default 50, max 200
|
all |
string | No |
1/true/yes for non-paginated list |
paginate |
string | No | alternative pagination toggle |
document_no |
string | No | exact document no |
document_status |
string | No | accepted: D (Draft), CO (Completed), V (Voided) |
date_from |
date | No | start document date |
date_to |
date | No | end document date |
updated_from |
datetime | No | start updated datetime |
updated_to |
datetime | No | end updated datetime |
organization_id |
string | No | exact organization id |
org_id |
string | No | alias of organization_id
|
organization_code |
string | No | exact organization code |
org_code |
string | No | alias of organization_code
|
| Parameter | Type | Required | Notes |
|---|---|---|---|
till_date |
date | No | report cutoff date |
document_type |
string | No | example SI, PI
|
currency_code |
string | No | exact currency code |
accounts_code |
string | No | exact account code |
bpartner_no |
string | No | business partner no |
bpartnergroup_code |
string | No | BP group code |
industry_code |
string | No | industry code |
salesagent_no |
string | No | sales agent code |
agent_filter_type |
string | No | agent filter mode |
organization_id |
string | No | exact organization id |
org_id |
string | No | alias of organization_id
|
organization_code |
string | No | exact organization code |
org_code |
string | No | alias of organization_code
|
| Field | Type | Notes |
|---|---|---|
meta.execute_time_ms |
int | execution time in ms |
meta.request_time |
datetime string | request timestamp |
meta.response_time |
datetime string | response timestamp |
| Field | Type | Notes |
|---|---|---|
data[] |
array | account rows |
data[].id |
string | account id |
data[].code |
string | account code |
data[].name |
string | account name |
data[].updated |
datetime string | YYYY-MM-DD HH:MM:SS |
| Field | Type | Notes |
|---|---|---|
data[] |
array | reference rows |
data[].code |
string | code |
data[].name |
string | name |
data[].updated |
datetime string | YYYY-MM-DD HH:MM:SS |
| Field | Type | Notes |
|---|---|---|
data[] |
array | journal entry rows |
data[].document_id |
string | document id |
data[].document_no |
string | document no |
data[].document_date |
date string | YYYY-MM-DD |
data[].document_status |
string | status code |
data[].document_status_label |
string | status label |
data[].organization_id |
string | organization id |
data[].organization_code |
string | organization code |
data[].total_debit_amount |
string/number | total debit amount |
data[].total_credit_amount |
string/number | total credit amount |
data[].lines[] |
array | line summary list |
data[].lines[].document_line_id |
string | line id |
data[].lines[].location_id |
string | location id |
data[].lines[].location_code |
string | location code |
data[].lines[].location_name |
string | location name |
data[].lines[].tax_id |
string | tax id |
data[].lines[].tax_code |
string | tax code |
data[].lines[].tax_rate |
string/number | tax rate |
data[].updated |
datetime string | YYYY-MM-DD HH:MM:SS |
meta.filters |
object | applied filters only |
meta.pagination |
object/null | pagination info or null
|
| Field | Type | Notes |
|---|---|---|
data |
object | journal entry detail |
data.document_id |
string | document id |
data.document_no |
string | document no |
data.document_date |
date string | YYYY-MM-DD |
data.document_status |
string | status code |
data.document_status_label |
string | status label |
data.total_debit_amount |
string/number | total debit amount |
data.total_credit_amount |
string/number | total credit amount |
data.updated |
datetime string | YYYY-MM-DD HH:MM:SS |
data.lines[] |
array | journal lines |
data.lines[].document_line_id |
string | line id |
data.lines[].accounts_id |
string | account id |
data.lines[].accounts_code |
string | account code |
data.lines[].accounts_name |
string | account name |
data.lines[].debit_amount |
string/number | debit amount |
data.lines[].credit_amount |
string/number | credit amount |
data.lines[].location_id |
string | location id |
data.lines[].location_code |
string | location code |
data.lines[].location_name |
string | location name |
data.lines[].tax_id |
string | tax id |
data.lines[].tax_code |
string | tax code |
data.lines[].tax_rate |
string/number | tax rate |
data.lines[].updated |
datetime string | YYYY-MM-DD HH:MM:SS |
| Field | Type | Notes |
|---|---|---|
data.document_id |
string | target document id |
data.document_no |
string | target document no |
data.msg |
string | process result message |
data.updated |
datetime string |
YYYY-MM-DD HH:MM:SS or empty |
| Field | Type | Notes |
|---|---|---|
data.valid |
boolean | validation result |
data.msg |
string | validation message |
data.updated |
datetime string |
YYYY-MM-DD HH:MM:SS or empty |
| Field | Type | Notes |
|---|---|---|
data[] |
array | bypass code options |
data[].id |
string | bypass code id |
data[].code |
string | bypass code |
data[].name |
string | bypass code label |
data[].updated |
datetime string | YYYY-MM-DD HH:MM:SS |
| Field | Type | Notes |
|---|---|---|
data[] |
array | aging rows |
data[].bpartner_no |
string | business partner no |
data[].bpartner_name |
string | business partner name |
data[].not_due |
string/number | not due bucket |
data[].age_1_30 |
string/number | 1-30 days |
data[].age_31_60 |
string/number | 31-60 days |
data[].age_61_90 |
string/number | 61-90 days |
data[].age_over_90 |
string/number | over 90 days |
data[].updated |
datetime string | YYYY-MM-DD HH:MM:SS |
| Field | Type | Notes |
|---|---|---|
data.generated_count |
int | number of documents generated |
data.msg |
string | process result message |
data.updated |
datetime string |
YYYY-MM-DD HH:MM:SS or empty |
GET /api/v3/accounting/reference/accounts
| Parameter | Type | Required | Notes |
|---|---|---|---|
organization_id |
string | No | exact organization id |
org_id |
string | No | alias of organization_id
|
organization_code |
string | No | exact organization code |
org_code |
string | No | alias of organization_code
|
| Field | Type | Notes |
|---|---|---|
data[] |
array | account rows |
data[].id |
string | account id |
data[].code |
string | account code |
data[].name |
string | account name |
data[].updated |
datetime string | YYYY-MM-DD HH:MM:SS |
meta.execute_time_ms |
int | execution time in ms |
meta.request_time |
datetime string | request timestamp |
meta.response_time |
datetime string | response timestamp |
curl -G "https://<host>/api/v3/accounting/reference/accounts" \
-H "Authorization: Bearer <token>" \
--data-urlencode "organization_code=BHH"{
"status": "OK",
"data": [
{
"id": "1-1-100",
"code": "1100-000",
"name": "Cash On Hand",
"updated": "2026-04-10 09:00:00"
}
],
"meta": {
"execute_time_ms": 6,
"request_time": "2026-04-11 12:00:00",
"response_time": "2026-04-11 12:00:00"
}
}GET /api/v3/accounting/reference/currencies
None.
| Field | Type | Notes |
|---|---|---|
data[] |
array | currency rows |
data[].code |
string | currency code |
data[].name |
string | currency name |
data[].updated |
datetime string | YYYY-MM-DD HH:MM:SS |
meta.execute_time_ms |
int | execution time in ms |
meta.request_time |
datetime string | request timestamp |
meta.response_time |
datetime string | response timestamp |
curl -X GET "https://<host>/api/v3/accounting/reference/currencies" \
-H "Authorization: Bearer <token>"{
"status": "OK",
"data": [
{
"code": "MYR",
"name": "Malaysian Ringgit",
"updated": "2026-04-10 09:00:00"
}
],
"meta": {
"execute_time_ms": 4,
"request_time": "2026-04-11 12:00:00",
"response_time": "2026-04-11 12:00:00"
}
}GET /api/v3/accounting/reference/countries
None.
| Field | Type | Notes |
|---|---|---|
data[] |
array | country rows |
data[].code |
string | country code |
data[].name |
string | country name |
data[].updated |
datetime string | YYYY-MM-DD HH:MM:SS |
meta.execute_time_ms |
int | execution time in ms |
meta.request_time |
datetime string | request timestamp |
meta.response_time |
datetime string | response timestamp |
curl -X GET "https://<host>/api/v3/accounting/reference/countries" \
-H "Authorization: Bearer <token>"{
"status": "OK",
"data": [
{
"code": "MY",
"name": "Malaysia",
"updated": "2026-04-10 09:00:00"
}
],
"meta": {
"execute_time_ms": 4,
"request_time": "2026-04-11 12:00:00",
"response_time": "2026-04-11 12:00:00"
}
}GET /api/v3/accounting/journal-entries
Use Common Query Parameters - Journal Entry List.
| Field | Type | Notes |
|---|---|---|
data |
array | Refer to Common Response Fields - Journal Entry List |
meta |
object | Refer to Common Response Fields - Timing Meta |
curl -G "https://<host>/api/v3/accounting/journal-entries" \
-H "Authorization: Bearer <token>" \
--data-urlencode "organization_code=BHH" \
--data-urlencode "document_status=CO" \
--data-urlencode "all=1"{
"status": "OK",
"data": [
{
"document_id": "1-1-7001",
"document_no": "JE000101",
"document_date": "2026-04-10",
"document_status": "CO",
"document_status_label": "Completed",
"organization_id": "1",
"organization_code": "BHH",
"total_debit_amount": "100.00",
"total_credit_amount": "100.00",
"lines": [
{
"document_line_id": "1-1-7001-1",
"location_id": "1-1-500",
"location_code": "MAIN",
"location_name": "Main Store",
"tax_id": "1-1-700",
"tax_code": "SR",
"tax_rate": "0.00"
}
],
"updated": "2026-04-10 09:30:00"
}
],
"meta": {
"filters": {
"organization_code": "BHH",
"document_status": "CO"
},
"pagination": null,
"execute_time_ms": 16,
"request_time": "2026-04-11 12:00:00",
"response_time": "2026-04-11 12:00:00"
}
}GET /api/v3/accounting/journal-entries/{id}
None.
| Field | Type | Notes |
|---|---|---|
data |
object | Refer to Common Response Fields - Journal Entry Detail |
meta |
object | Refer to Common Response Fields - Timing Meta |
curl -X GET "https://<host>/api/v3/accounting/journal-entries/1-1-7001" \
-H "Authorization: Bearer <token>"{
"status": "OK",
"data": {
"document_id": "1-1-7001",
"document_no": "JE000101",
"document_date": "2026-04-10",
"document_status": "CO",
"document_status_label": "Completed",
"total_debit_amount": "100.00",
"total_credit_amount": "100.00",
"updated": "2026-04-10 09:30:00",
"lines": [
{
"document_line_id": "1-1-7001-1",
"accounts_id": "1-1-100",
"accounts_code": "1100-000",
"accounts_name": "Cash On Hand",
"debit_amount": "100.00",
"credit_amount": "0.00",
"location_id": "1-1-500",
"location_code": "MAIN",
"location_name": "Main Store",
"tax_id": "1-1-700",
"tax_code": "SR",
"tax_rate": "0.00",
"updated": "2026-04-10 09:30:00"
}
]
},
"meta": {
"execute_time_ms": 12,
"request_time": "2026-04-11 12:00:00",
"response_time": "2026-04-11 12:00:00"
}
}POST /api/v3/accounting/journal-entries
Body is required (JSON).
Body Parameters:
| Field | Required | Accepted Value / Format | Notes |
|---|---|---|---|
organization_id |
No | valid org id/code | |
organization_code |
No | valid org id/code | |
branch_id |
No | valid branch id/code | |
branch_code |
No | valid branch id/code | |
headerarr |
Yes | object | JE header payload |
headerarr.document_date |
No | YYYY-MM-DD |
optional |
headerarr.document_status |
No | valid status code (D, CO) |
optional |
linearr |
Yes | array | JE lines |
linearr[].accounts_id |
No | valid id/code | |
linearr[].accounts_code |
No | valid id/code | |
linearr[].debitamt |
No | decimal string >= 0 | |
linearr[].creditamt |
No | decimal string >= 0 | |
linearr[].currency_code |
No | valid currency code | |
linearr[].currency_rate |
No | decimal string > 0 |
None.
| Field | Type | Notes |
|---|---|---|
data.document_id |
string | saved document id |
data.document_no |
string | saved document no |
data.msg |
string | process result message |
data.updated |
datetime string |
YYYY-MM-DD HH:MM:SS or empty |
meta.execute_time_ms |
int | execution time in ms |
meta.request_time |
datetime string | request timestamp |
meta.response_time |
datetime string | response timestamp |
curl -X POST "https://<host>/api/v3/accounting/journal-entries" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"organization_code": "BHH",
"headerarr": {
"document_date": "2026-04-10"
},
"linearr": [
{
"accounts_code": "1100-000",
"debitamt": "100.00"
},
{
"accounts_code": "4100-000",
"creditamt": "100.00"
}
]
}'{
"status": "OK",
"data": {
"document_id": "1-1-7001",
"document_no": "JE000101",
"msg": "Document saved successfully",
"updated": "2026-04-10 09:35:00"
},
"meta": {
"execute_time_ms": 23,
"request_time": "2026-04-11 12:00:00",
"response_time": "2026-04-11 12:00:00"
}
}POST /api/v3/accounting/journal-entries/{id}/validate
Body is supported (JSON).
Body Parameters:
| Field | Required | Accepted Value / Format | Notes |
|---|---|---|---|
action |
No | string (void, confirm) |
validate target action |
None.
| Field | Type | Notes |
|---|---|---|
data.valid |
boolean | validation result |
data.msg |
string | validation message |
data.updated |
datetime string |
YYYY-MM-DD HH:MM:SS or empty |
meta.execute_time_ms |
int | execution time in ms |
meta.request_time |
datetime string | request timestamp |
meta.response_time |
datetime string | response timestamp |
curl -X POST "https://<host>/api/v3/accounting/journal-entries/1-1-7001/validate" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"action": "void"
}'{
"status": "OK",
"data": {
"valid": true,
"msg": "Validation passed",
"updated": "2026-04-10 09:36:00"
},
"meta": {
"execute_time_ms": 7,
"request_time": "2026-04-11 12:00:00",
"response_time": "2026-04-11 12:00:00"
}
}POST /api/v3/accounting/journal-entries/{id}/confirm
Body is not required.
None.
| Field | Type | Notes |
|---|---|---|
data |
object | Refer to Common Response Fields - Document Action |
meta |
object | Refer to Common Response Fields - Timing Meta |
curl -X POST "https://<host>/api/v3/accounting/journal-entries/1-1-7001/confirm" \
-H "Authorization: Bearer <token>"{
"status": "OK",
"data": {
"document_id": "1-1-7001",
"document_no": "JE000101",
"msg": "Document confirmed successfully",
"updated": "2026-04-10 09:40:00"
},
"meta": {
"execute_time_ms": 12,
"request_time": "2026-04-11 12:00:00",
"response_time": "2026-04-11 12:00:00"
}
}POST /api/v3/accounting/journal-entries/{id}/void
Body is supported (JSON).
Body Parameters:
| Field | Required | Accepted Value / Format | Notes |
|---|---|---|---|
organization_id |
No | valid org id/code | |
organization_code |
No | valid org id/code | |
document_reason |
No | string | void reason/audit note |
None.
| Field | Type | Notes |
|---|---|---|
data |
object | Refer to Common Response Fields - Document Action |
meta |
object | Refer to Common Response Fields - Timing Meta |
curl -X POST "https://<host>/api/v3/accounting/journal-entries/1-1-7001/void" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"document_reason": "Void test"
}'{
"status": "OK",
"data": {
"document_id": "1-1-7001",
"document_no": "JE000101",
"msg": "Document voided successfully",
"updated": "2026-04-10 09:45:00"
},
"meta": {
"execute_time_ms": 11,
"request_time": "2026-04-11 12:00:00",
"response_time": "2026-04-11 12:00:00"
}
}DELETE /api/v3/accounting/journal-entries/{id}
Body is not required.
None.
| Field | Type | Notes |
|---|---|---|
data.document_id |
string | deleted document id |
data.msg |
string | process result message |
data.updated |
datetime string |
YYYY-MM-DD HH:MM:SS or empty |
meta.execute_time_ms |
int | execution time in ms |
meta.request_time |
datetime string | request timestamp |
meta.response_time |
datetime string | response timestamp |
curl -X DELETE "https://<host>/api/v3/accounting/journal-entries/1-1-7001" \
-H "Authorization: Bearer <token>"{
"status": "OK",
"data": {
"document_id": "1-1-7001",
"msg": "Document deleted successfully",
"updated": "2026-04-10 09:50:00"
},
"meta": {
"execute_time_ms": 10,
"request_time": "2026-04-11 12:00:00",
"response_time": "2026-04-11 12:00:00"
}
}POST /api/v3/accounting/credit-control/bypass/check
Body is required (JSON).
Body Parameters:
| Field | Required | Accepted Value / Format | Notes |
|---|---|---|---|
bypass_code |
Yes | valid bypass code string | main validation code |
organization_id |
No | valid org id/code | optional |
organization_code |
No | valid org id/code | optional |
| additional legacy fields | No | legacy-compatible payload | send when flow requires |
None.
| Field | Type | Notes |
|---|---|---|
data.valid |
boolean | bypass validation result |
data.msg |
string | process message |
data.updated |
datetime string |
YYYY-MM-DD HH:MM:SS or empty |
meta.execute_time_ms |
int | execution time in ms |
meta.request_time |
datetime string | request timestamp |
meta.response_time |
datetime string | response timestamp |
curl -X POST "https://<host>/api/v3/accounting/credit-control/bypass/check" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"bypass_code": "CC-BYPASS-01"
}'{
"status": "OK",
"data": {
"valid": true,
"msg": "Bypass validated",
"updated": "2026-04-10 09:55:00"
},
"meta": {
"execute_time_ms": 8,
"request_time": "2026-04-11 12:00:00",
"response_time": "2026-04-11 12:00:00"
}
}GET /api/v3/accounting/credit-control/bypass-codes
None.
| Field | Type | Notes |
|---|---|---|
data[] |
array | bypass code options |
data[].id |
string | bypass code id |
data[].code |
string | bypass code |
data[].name |
string | bypass code label |
data[].updated |
datetime string | YYYY-MM-DD HH:MM:SS |
meta.execute_time_ms |
int | execution time in ms |
meta.request_time |
datetime string | request timestamp |
meta.response_time |
datetime string | response timestamp |
curl -X GET "https://<host>/api/v3/accounting/credit-control/bypass-codes" \
-H "Authorization: Bearer <token>"{
"status": "OK",
"data": [
{
"id": "1-1-901",
"code": "CC-BYPASS-01",
"name": "Manager Override",
"updated": "2026-04-10 09:58:00"
}
],
"meta": {
"execute_time_ms": 6,
"request_time": "2026-04-11 12:00:00",
"response_time": "2026-04-11 12:00:00"
}
}GET /api/v3/accounting/reports/debtors-aging
Use Common Query Parameters - Aging Reports.
| Field | Type | Notes |
|---|---|---|
data |
array | Refer to Common Response Fields - Aging Report |
meta |
object | Refer to Common Response Fields - Timing Meta |
curl -G "https://<host>/api/v3/accounting/reports/debtors-aging" \
-H "Authorization: Bearer <token>" \
--data-urlencode "organization_code=BHH" \
--data-urlencode "till_date=2026-04-10"{
"status": "OK",
"data": [
{
"bpartner_no": "BP0001",
"bpartner_name": "ABC Trading",
"not_due": "100.00",
"age_1_30": "0.00",
"age_31_60": "0.00",
"age_61_90": "0.00",
"age_over_90": "0.00",
"updated": "2026-04-10 10:00:00"
}
],
"meta": {
"execute_time_ms": 19,
"request_time": "2026-04-11 12:00:00",
"response_time": "2026-04-11 12:00:00"
}
}GET /api/v3/accounting/reports/creditors-aging
Use Common Query Parameters - Aging Reports.
| Field | Type | Notes |
|---|---|---|
data |
array | Refer to Common Response Fields - Aging Report |
meta |
object | Refer to Common Response Fields - Timing Meta |
curl -G "https://<host>/api/v3/accounting/reports/creditors-aging" \
-H "Authorization: Bearer <token>" \
--data-urlencode "organization_code=BHH" \
--data-urlencode "till_date=2026-04-10"{
"status": "OK",
"data": [
{
"bpartner_no": "BP0002",
"bpartner_name": "XYZ Supplier",
"not_due": "80.00",
"age_1_30": "20.00",
"age_31_60": "0.00",
"age_61_90": "0.00",
"age_over_90": "0.00",
"updated": "2026-04-10 10:00:00"
}
],
"meta": {
"execute_time_ms": 19,
"request_time": "2026-04-11 12:00:00",
"response_time": "2026-04-11 12:00:00"
}
}POST /api/v3/accounting/recurring-invoices/generate
Body is supported (JSON).
Body Parameters:
| Field | Required | Accepted Value / Format | Notes |
|---|---|---|---|
organization_id |
No | valid org id/code | |
organization_code |
No | valid org id/code | |
| legacy recurring payload fields | No | legacy-compatible payload | include as needed by recurring setup |
None.
| Field | Type | Notes |
|---|---|---|
data.generated_count |
int | number of invoices generated |
data.msg |
string | process result message |
data.updated |
datetime string |
YYYY-MM-DD HH:MM:SS or empty |
meta.execute_time_ms |
int | execution time in ms |
meta.request_time |
datetime string | request timestamp |
meta.response_time |
datetime string | response timestamp |
curl -X POST "https://<host>/api/v3/accounting/recurring-invoices/generate" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"organization_code": "BHH"
}'{
"status": "OK",
"data": {
"generated_count": 3,
"msg": "Recurring invoices generated",
"updated": "2026-04-10 10:05:00"
},
"meta": {
"execute_time_ms": 27,
"request_time": "2026-04-11 12:00:00",
"response_time": "2026-04-11 12:00:00"
}
}