Getting started
Conventions
Request and response rules, date formats and limits that apply to every endpoint.
Requests
- URL format:
https://out.stockmount.com/api/{Controller}/{Action}, for examplehttps://out.stockmount.com/api/Integration/GetSales. - Every endpoint is called with
POST. The body must be UTF-8 JSON, sent with aContent-Type: application/jsonheader. - Credentials go in the
ApiCodefield of the body, not in a header (Authentication). - Send field names as written in these docs (PascalCase). Unknown fields are ignored; fields set to
nullcount as not sent. - Use a dot as the decimal separator (
249.90). Amounts are stored with 2 decimal places.
Response envelope
Successful and failed responses share the same shape:
| Field | Description |
|---|---|
Result | true if the operation succeeded. Always check this first. |
Response | The data the endpoint returns. Empty for some endpoints. |
ErrorCode | The error code (for example 00003). All codes: Error codes. |
ErrorMessage | A description of the error or the name of a missing field. The text may change; do not build logic on it. |
Message | An informational message. Some endpoints explain the outcome or the error here. |
{
"Result": true,
"Response": { "ProductId": 184522 }
}{
"Result": false,
"ErrorCode": "00003",
"ErrorMessage": "StoreId"
}- Empty fields are left out. Fields whose value is
null(such asErrorCodeon success) are not written to the JSON at all. Treat a missing field as empty. - Business errors return HTTP 200. Check
Result, not the HTTP status. - Some endpoints return no
ErrorCodeon failure and only fillErrorMessageorMessage. Check in this order:Result→ErrorCode→ErrorMessage/Message. - Some successful responses carry an
ErrorCodetoo. For example,AddreturnsProduct Result: truewith70004when a product with the same code already exists. - The message language varies by endpoint; most are English, some are Turkish.
HTTP status codes
200: the request was processed;Resultholds the outcome.400: the body is empty or not valid JSON. This response is a standard ProblemDetails object, notResultInfo.410: the endpoint was removed (for exampleDelete).Product
Dates and times
- Send request dates in ISO 8601 format, in Turkey time without an offset:
2026-11-05T14:30:00. A trailingZis ignored and the value is still read as Turkey time. - Do not use local formats such as
05.11.2026; day and month may be swapped. - Response formats differ by field. Order dates (
OrderDate,CargoDate,InvoiceTimeand so on) and message times are UTC with aZ. Fields such asLastModificationTime,CreationTimeandPackageEndDateare Turkey time without an offset. Each endpoint page states the format of each field. - Some empty date fields return a date before 1900 (
1899-12-31T22:03:00Z) instead ofnull. Treat dates before 1900 as empty.
Limits
| Topic | Limit |
|---|---|
Get date range | At most 7 days |
Get page size | Default 20, at most 200 orders |
Get page size | Default and maximum 100 products |
| Product update endpoints | One product per call (its variants in the same call) |
| Product images | At most 12 per product |
| API keys | At most 2 per account |
On paged endpoints PageIndex starts at 1. Send only the requests you need: pulling orders every few minutes is enough, and stock and price only need sending when they change.
Packages
- To log in, your account needs a valid package that includes API access; otherwise
DoreturnsLogin 99988. - Product endpoints (
Product/*andSet) also need an active Product package; otherwise they returnProduct Source Products 70018. Order endpoints do not need it.
Changes
There is no version number in the API URL. Removed endpoints return HTTP 410; changes are announced in the changelog. Details: Versioning policy.