The Accounting+ API is organized around REST principles with predictable resource-oriented URLs. All API responses return JSON and use standard HTTP response codes, authentication, and verbs.
Base URL: https://staging-openapi.accountingplus.id
Authentication
You need these 3 variables to be able to fully integrated with Accounting+.
| Name | Data Type | Sample |
|---|
| client_id | string | thepartner |
| client_secret | string | rrqfQPvstlTSXc9zezzCTXTt3LgEGrEa |
| signature_secret | string | yH0G6cfb0714XA6Mr36xEGxeEtbD2gph |
Contact your system administrator or account manager to obtain these keys.
Beside that, the user email and tenant_id are required for some API.
The following parameters must be included in the request header for every API call (excluding the Get Token, Register, and Login endpoints):
| Key | Value |
|---|
| Authorization | Bearer YOUR_TOKEN |
| A-Signature | YOUR_SIGNATURE |
| A-Data | YOUR_DATA |
Token (Authorization)
Before making an API request to Accounting+ API, you must obtain a token by calling the API Get Token.
A-Signature
As additional security guard in every API request, Accounting+ API uses a signature to ensure that the data in each request and response cannot be hijacked and copied by unauthorized users.
This signature is generated using the SHA256-HMAC algorithm and use signature_secret as key.
Example: Creating a signature containing path, token, and email
path=/v1/sample&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnRfaWQiOiJ0ZXN0In0.6c_QFWhU8Yvb_4kZ1kTiovsSfNKAC0oQ4tQs45rjy9U&email=john@gmail.com
Sample encrypted with SHA256-HMAC using yH0G6cfb0714XA6Mr36xEGxeEtbD2gph as the key:
e2d3a074b3478eb658cf2d0b4eae8d2db7e75fca0caabb83d80aa0df01617fae
Base64 encoded format:
eUgwRzZjZmIwNzE0WEE2TXIzNnhFR3hlRXRiRDJncGg=
In this documentation, the encrypted result will be referred to as YOUR_SIGNATURE.
A-Data
A-Data contains email and tenant_id variables to identify the user calling the endpoint. Here’s an example of how to form it:
email=john@gmail.com&tenant_id=055
Base64 encoded format:
ZW1haWw9am9obkBnbWFpbC5jb20mdGVuYW50X2lkPTA5OQ==
In this documentation, the encoded result will be referred to as YOUR_DATA.
Example
Here’s a simple example to retrieve your monthly cashflow:
curl -X GET \
"https://staging-openapi.accountingplus.id/v1/dashboard/monthly-cashflow?month=1&year=2025" \
-H "Content-Type: application/json" \
-H "Authorization: YOUR_TOKEN" \
-H "A-Signature: YOUR_SIGNATURE" \
-H "A-Data": YOUR_DATA"
All API responses follow a consistent format:
{
"status": "00",
"message": "success",
"data": {
"total_income": 112600,
"income_growth": 11160,
"total_expense": 2000,
"expense_growth": -66.67,
"total_balance": 15110600,
"balance_growth": 5004.93
}
}