{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"6946cad2-1834-47ac-b2fe-53fdfa423b30","name":"Tetashop OpenAPI","description":"# Overview\n\n## Bussiness Flow\n\n[Click here for detail diagram](https://drive.google.com/uc?id=1goXO1Y3gM1foD-YEoKXC0k-UinpAWxpd)\n\n# Features\n\n## Easy to Integrate API\n\n- Our RESTful API’s enable our partners to integrate to our solution seamlessly;\n    \n- Tetama API support: Purchase Order, Sales Order, Product.\n    \n\n## Dashboard\n\n- Tetama provides a portal for our partners to see partner credentials for accessing our API and also changing webhook URL;\n    \n\n# Setting Up\n\nOnce a partner has registered, it will have an access to our sandbox environment. Tetama partner dashboard will also be accessible.\n\n## Getting Notification\n\nTetama allows partners to receive realtime notifications about Tetama related information, by configuring a endpoint url on the Tetama Partner Dashboard.\n\nWe are sending notifications to Webhook URL. This endpoint will only be triggered if there are status changes to existing subscription. Please refer to notification status triggers table refecenced below this section for which statuses are sent in the notification.\n\nOnce configured, Tetama will send a HTTP POST payload to the url, containing detail about specific event which can be seen in the notification payload section.\n\n**Configuring the Endpoint URL**\n\n- To setup an Endpoint URL on Tetama, head over to the **SETTINGS** tab on the sidebar, and edit the values on **WEBHOOK URL**.\n    \n- Save the notification URL using the **Submit** button. The notification URL can be modified anytime from the settings page.\n    \n\n## Notification Payload\n\nExample Payload:\n\n``` json\n{\n  \"po_id\": 235,\n  \"po_no\": \"PO-000000235\",\n  \"po_status\": \"being_processed\",\n  \"reason_detail\": null,\n  \"reason_category\": null,\n  \"supporting_document\": null,\n  \"last_modified_time\": \"2023-06-15T12:46:12.417Z\",\n  \"sales_order_id\": 1145,\n  \"sales_order_no\": \"OMS-SO-000001145\",\n  \"platform_sales_order_no\": \"SO-000002876\",\n  \"so_status\": \"submitted\",\n  \"platform_so_status\": \"Siap Kirim\"\n}\n\n ```\n\n### Payload Description\n\n| Parameter | Description |\n| --- | --- |\n| po_id | `number` The purchase order ID. |\n| po_no | `string` The purchase order number. |\n| po_status | `enum` Refer to purchase order status reference section for possible values. |\n| reason_detail | `string` Additional details or reasons related to the purchase order cancellation. |\n| reason_category | `string` The category of the reason for the purchase order cancellation. |\n| supporting_document | `string` Any supporting document associated with the purchase order cancellation. |\n| last_modified_time | The timestamp indicating the last modification time of the purchase order. |\n|  | Date format in ISO 8601 format. |\n| sales_order_id | `number` The sales order ID associated with the purchase order. |\n| sales_order_no | `string` The sales order number corresponding to the purchase order. |\n| platform_sales_order_no | `string` The platform-specific sales order number associated with the purchase order. |\n| so_status | `enum` Refer to sales order status reference section for possible values. |\n| platform_so_status | `enum` Refer to platform sales order status reference section for possible values. |\n\n### Notification Status Triggers\n\nTetama system will send notification when current status is triggered\n\nStartFragment\n\n| PO Status | SO Status | Get Notification |\n| --- | --- | --- |\n| canceled | null / Cancelled | ✅ |\n| being_processed | Defecta | ✅ |\n| being_processed | Pengambilan belum dimulai | ✅ |\n| being_processed | Siap Kirim | ✅ |\n| being_processed | Terkirim | ✅ |\n| completed | Selesai | ✅ |\n\nEndFragment\n\n## Error Code and Message\n\n### Description Of Usual Server Responses (HTTP Codes)\n\n- `200 OK` - the request was successful (some API calls may return 201 instead).\n    \n- `201 Created` - the request was successful and a resource was created.\n    \n- `202 Accepted` - the request was accepted and enqueue for processing later.\n    \n- `204 No Content` - the request was successful but there is no representation to return (i.e. the response is empty).\n    \n- `400 Bad Request` - the request could not be understood or was missing required parameters.\n    \n- `401 Unauthorized` - authentication failed.\n    \n- `403 Forbidden` - access denied.\n    \n- `402 Payment Required` - payment is required.\n    \n- `404 Not Found` - resource was not found.\n    \n- `410 Gone` - the resource has been expired.\n    \n- `422 Unprocessable Entity` - i.e. validation errors.\n    \n- `500 Internal Server Error` - Bad bad bad.\n    \n- `503 Service Unavailable` - service is temporary unavailable (e.g. scheduled Platform Maintenance). Try again later.\n    \n\n### Error Structure\n\nAside from the `4XX` and `5XX` error HTTP Headers, we have an unified error structure:\n\n```\n{\n  \"error_code\": \"INTERNAL_SERVER_ERROR\",\n  \"message\": \"Internal Server Error\"\n}\n\n ```\n\nThis means that, if you get an `4XX` or `5XX` errors, you can utilize your system to log or display the error message to the user. Possible error codes will be explained in each endpoints.\n\n# Reference\n\n## Purchase Order Status\n\n| PO Status | Description |\n| --- | --- |\n| open | Purchase Order is sucessfully submitted in Tetama system. |\n| waiting_for_approval | Purchase Order needed OTP approval from APJ |\n| expired | Purchase Order has passed 2x24 hour OTP confirmation threshold |\n| being_processed | Purchase Order is currently being processed |\n| completed | Purchase Order and all the Sales Order related to is completed |\n| completed_with_case | Purchase Order and some of the Sales Order related to is completed |\n\n## Sales Order Status\n\n| SO Status | Description |\n| --- | --- |\n| cancelled | Sales order is cancelled by partner's request |\n| defecta | Sales order is on defecta |\n| draft | Sales order is still on review |\n| submitted | Sales order is approved |\n\n## Platform Sales Order Status\n\n| Platform SO Status | Descripton |\n| --- | --- |\n| Draft | Sales order is on review |\n| Canceled | Sales order is cancelled by partner's request |\n| Pending | Sales order is pending payment |\n| Lunas | Sales order is paid |\n| Siap Proses | Sales order is ready to processed |\n| Defecta | Sales order is on defecta status |\n| Pengambilan belum dimulai | Sales order items is waiting to be picked up from warehouse |\n| Pengambilan | Sales order items is on pick up from warehouse |\n| Pengambilan Selesai | Sales order items is picked up from warehouse |\n| Pengepakan | Sales order items is on packaging status |\n| Siap Kirim | Sales order is ready for delivery |\n| Menunggu Pengiriman | Sales order is waiting for pickup |\n| Pengambilan Oleh Kurir | Sales order is Picked Up |\n| Kurir Dalam Perjalanan | Sales order is On the Way |\n| Terkirim | Sales order is shipped |\n| Pengambilan Gagal | Sales order items failed to pick up from warehouse |\n| Pengepakan Gagal | Sales order failed packaging is failed |\n| Pengiriman Gagal | Sales order delivery is failed |\n| Selesai | Sales order is completed |\n\n## Sales Order Catgeory\n\n| SO Category | Description |\n| --- | --- |\n| Reguler | SO Category for Product Category: ALAT KESEHATAN, FMCG, GENERIK, HERBAL, KOSMETIKA, OBAT BEBAS, OBAT BEBAS TERBATAS, OBAT KERAS  <br>OBAT KUASI, OBAT TRADISIONAL, PANGAN OLAHAN, PKRT, SUPLEMENT |\n| OOT | SO Category for Product Category: OBAT - OBAT TERTENTU (OOT), OBAT - OBAT TERTENTU (OOT) - K |\n| Prekursor | SO Category for Product Category: PREKURSOR, PREKURSOR - K |\n| Psikotropika | SO Category for Product Category: PSIKOTROPIKA |\n\n# Authorization\n\nFor the authorization headers for authenticating the requests, please refer to our Authorization Header section below.\n\n# API Changelog\n\n#### Version 1.0.1 - 2024-08-06\n\n**Updates**\n\n- **/v1/product**:\n    \n    - Add `priority` in response","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"27129522","team":5238014,"collectionId":"6946cad2-1834-47ac-b2fe-53fdfa423b30","publishedId":"2s93eYUs75","public":true,"publicUrl":"https://api-docs.tetama.id","privateUrl":"https://go.postman.co/documentation/27129522-6946cad2-1834-47ac-b2fe-53fdfa423b30","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.0","publishDate":"2024-09-17T07:24:52.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/e6376c7636e39a731c69b511d1dcc2f5b70616fac6d5a7d802a8f91f86a7762f","favicon":"https://tetama.id/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://api-docs.tetama.id/view/metadata/2s93eYUs75"}