Skip to content

API Usage Sales

simitben edited this page Apr 10, 2026 · 4 revisions

Purpose

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

Base URL

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

Authentication

All sales endpoints are protected.

Required headers:

  • Authorization: Bearer <token>
  • x-uid: <uid>

Date-Time Format

For filter parameters such as updated_from and updated_to, use:

  • YYYY-MM-DD HH:MM:SS

Endpoint Summary

Sales Order

Endpoint Method Purpose
/api/v3/sales-orders GET List sales orders
/api/v3/sales-orders/{id} GET Get sales order by id
/api/v3/sales-orders POST Create sales order
/api/v3/sales-orders/{documentNo}/void POST Void sales order by document no

Sales Invoice

Endpoint Method Purpose
/api/v3/sales-invoices GET List sales invoices
/api/v3/sales-invoices/{id} GET Get sales invoice by id
/api/v3/sales-invoices POST Create sales invoice
/api/v3/sales-invoices/{documentNo}/void POST Void sales invoice by document no

Debtor Credit Note

Endpoint Method Purpose
/api/v3/debtor-credit-notes GET/POST List or create debtor credit notes
/api/v3/debtor-credit-notes/{id} GET Get debtor credit note by id

Debtor Debit Note

Endpoint Method Purpose
/api/v3/debtor-debit-notes GET/POST List or create debtor debit notes
/api/v3/debtor-debit-notes/{id} GET Get debtor debit note by id

Official Receipt

Endpoint Method Purpose
/api/v3/official-receipts GET/POST List or create official receipts
/api/v3/official-receipts/{id} GET Get official receipt by id

Response Pattern

  • List endpoints return data as an array and meta.pagination.
  • Detail endpoints return data as one object and meta as an empty object.
  • Get-by-id endpoints do not require updated_from / updated_to.

1) List Sales Documents

Request

GET /api/v3/sales-orders (same filter pattern for other sales list endpoints)

Query Parameters

Parameter Type Required Notes
page int No default 1
per_page int No default 50, max 200
document_no string No exact document no
document_status string No exact status
date_from date No document date start
date_to date No document date end
updated_from datetime No updated range start
updated_to datetime No updated range end
organization_id / org_id string No org filter by id
organization_code / org_code string No org filter by code

Example cURL

curl -G "https://<host>/api/v3/sales-orders" \
  -H "Authorization: Bearer <token>" \
  -H "x-uid: support" \
  --data-urlencode "organization_code=BHH" \
  --data-urlencode "document_status=CO" \
  --data-urlencode "updated_from=2026-01-01 00:00:00" \
  --data-urlencode "updated_to=2026-12-31 23:59:59" \
  --data-urlencode "page=1" \
  --data-urlencode "per_page=20"

2) Get Sales Document by ID

Request

GET /api/v3/sales-orders/{id}

Example cURL

curl -X GET "https://<host>/api/v3/sales-orders/1-1-8001" \
  -H "Authorization: Bearer <token>" \
  -H "x-uid: support"

3) Create Sales Invoice (Sample Create Pattern)

Request

POST /api/v3/sales-invoices

JSON Body

  • headerarr (required)
  • linearr (required)

Example cURL

curl -X POST "https://<host>/api/v3/sales-invoices" \
  -H "Authorization: Bearer <token>" \
  -H "x-uid: support" \
  -H "Content-Type: application/json" \
  -d '{
    "headerarr": {
      "organization_code": "BHH",
      "document_date": "2026-04-09",
      "document_status": "D",
      "bpartner_no": "BP0001",
      "currency_code": "MYR"
    },
    "linearr": [
      {
        "item_code": "ITEM001",
        "quantity": "1",
        "uom_code": "Unit",
        "unitprice": "100.00",
        "amount_netttotal": "100.00"
      }
    ]
  }'

4) Void Sales Document by Document No

Request

POST /api/v3/sales-orders/{documentNo}/void

Example cURL

curl -X POST "https://<host>/api/v3/sales-orders/SO000123/void" \
  -H "Authorization: Bearer <token>" \
  -H "x-uid: support" \
  -H "Content-Type: application/json" \
  -d '{
    "organization_code": "BHH",
    "document_reason": "Customer cancel"
  }'

5) Other Sales Document Types

For debtor-credit-notes, debtor-debit-notes, and official-receipts:

  • List filters follow the same pattern as section 1.
  • Create payload follows the same headerarr + linearr pattern.
  • Get detail uses /{id} endpoint.

Clone this wiki locally