Skip to content

API Usage Accounting

simitben edited this page Apr 11, 2026 · 7 revisions

Purpose

This page explains how third-party systems should call Accounting APIs in SimBiz 6 API V3.

Base URL

  • https://<host>/api/v3

Authentication

All accounting endpoints are protected.

Required headers:

  • Authorization: Bearer <token>

How to get token:

Date-Time Format

  • date_from and date_to: YYYY-MM-DD
  • updated_from and updated_to: YYYY-MM-DD HH:MM:SS

Endpoint Summary

Account Master and Reference

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

Journal Entries

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

Credit Control

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

Reports

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

Recurring Invoices

No. Endpoint Method Purpose Required Permission Scope
15 /api/v3/accounting/recurring-invoices/generate POST Generate recurring invoices accounting.recurring_invoice.generate

Common Query Parameters - Journal Entry List

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

Common Query Parameters - Aging Reports

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

Common Response Fields - Timing Meta

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

Common Response Fields - Accounts

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

Common Response Fields - Currency/Country

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

Common Response Fields - Journal Entry List

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

Common Response Fields - Journal Entry Detail

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

Common Response Fields - Document Action

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

Common Response Fields - Validation Action

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

Common Response Fields - Bypass Codes

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

Common Response Fields - Aging Report

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

Common Response Fields - Recurring Invoice Generation

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

1) List Chart of Accounts

Request

GET /api/v3/accounting/reference/accounts

Query Parameters

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

Response Fields

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

Example cURL

curl -G "https://<host>/api/v3/accounting/reference/accounts" \
  -H "Authorization: Bearer <token>" \
  --data-urlencode "organization_code=BHH"

Success Response Example

{
  "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"
  }
}

2) List Currencies

Request

GET /api/v3/accounting/reference/currencies

Query Parameters

None.

Response Fields

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

Example cURL

curl -X GET "https://<host>/api/v3/accounting/reference/currencies" \
  -H "Authorization: Bearer <token>"

Success Response Example

{
  "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"
  }
}

3) List Countries

Request

GET /api/v3/accounting/reference/countries

Query Parameters

None.

Response Fields

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

Example cURL

curl -X GET "https://<host>/api/v3/accounting/reference/countries" \
  -H "Authorization: Bearer <token>"

Success Response Example

{
  "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"
  }
}

4) List Journal Entries

Request

GET /api/v3/accounting/journal-entries

Query Parameters

Use Common Query Parameters - Journal Entry List.

Response Fields

Field Type Notes
data array Refer to Common Response Fields - Journal Entry List
meta object Refer to Common Response Fields - Timing Meta

Example cURL

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"

Success Response Example

{
  "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"
  }
}

5) Get Journal Entry by ID

Request

GET /api/v3/accounting/journal-entries/{id}

Query Parameters

None.

Response Fields

Field Type Notes
data object Refer to Common Response Fields - Journal Entry Detail
meta object Refer to Common Response Fields - Timing Meta

Example cURL

curl -X GET "https://<host>/api/v3/accounting/journal-entries/1-1-7001" \
  -H "Authorization: Bearer <token>"

Success Response Example

{
  "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"
  }
}

6) Create Journal Entry

Request

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

Query Parameters

None.

Response Fields

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

Example cURL

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"
      }
    ]
  }'

Success Response Example

{
  "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"
  }
}

7) Validate Journal Entry Action

Request

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

Query Parameters

None.

Response Fields

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

Example cURL

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"
  }'

Success Response Example

{
  "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"
  }
}

8) Confirm Journal Entry

Request

POST /api/v3/accounting/journal-entries/{id}/confirm

Body is not required.

Query Parameters

None.

Response Fields

Field Type Notes
data object Refer to Common Response Fields - Document Action
meta object Refer to Common Response Fields - Timing Meta

Example cURL

curl -X POST "https://<host>/api/v3/accounting/journal-entries/1-1-7001/confirm" \
  -H "Authorization: Bearer <token>"

Success Response Example

{
  "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"
  }
}

9) Void Journal Entry

Request

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

Query Parameters

None.

Response Fields

Field Type Notes
data object Refer to Common Response Fields - Document Action
meta object Refer to Common Response Fields - Timing Meta

Example cURL

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"
  }'

Success Response Example

{
  "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"
  }
}

10) Delete Journal Entry

Request

DELETE /api/v3/accounting/journal-entries/{id}

Body is not required.

Query Parameters

None.

Response Fields

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

Example cURL

curl -X DELETE "https://<host>/api/v3/accounting/journal-entries/1-1-7001" \
  -H "Authorization: Bearer <token>"

Success Response Example

{
  "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"
  }
}

11) Credit Control Bypass Check

Request

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

Query Parameters

None.

Response Fields

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

Example cURL

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"
  }'

Success Response Example

{
  "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"
  }
}

12) Credit Control Bypass Codes

Request

GET /api/v3/accounting/credit-control/bypass-codes

Query Parameters

None.

Response Fields

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

Example cURL

curl -X GET "https://<host>/api/v3/accounting/credit-control/bypass-codes" \
  -H "Authorization: Bearer <token>"

Success Response Example

{
  "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"
  }
}

13) Debtors Aging Report

Request

GET /api/v3/accounting/reports/debtors-aging

Query Parameters

Use Common Query Parameters - Aging Reports.

Response Fields

Field Type Notes
data array Refer to Common Response Fields - Aging Report
meta object Refer to Common Response Fields - Timing Meta

Example cURL

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"

Success Response Example

{
  "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"
  }
}

14) Creditors Aging Report

Request

GET /api/v3/accounting/reports/creditors-aging

Query Parameters

Use Common Query Parameters - Aging Reports.

Response Fields

Field Type Notes
data array Refer to Common Response Fields - Aging Report
meta object Refer to Common Response Fields - Timing Meta

Example cURL

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"

Success Response Example

{
  "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"
  }
}

15) Recurring Invoice Generation

Request

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

Query Parameters

None.

Response Fields

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

Example cURL

curl -X POST "https://<host>/api/v3/accounting/recurring-invoices/generate" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "organization_code": "BHH"
  }'

Success Response Example

{
  "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"
  }
}

Clone this wiki locally