openapi: 3.0.3
info:
title: 'Lokalink Bussines Owner API Documentation'
description: '
We have an extensive database of various places, including restaurants, business establishments, and hidden gems. No matter what type of place you are looking for, we can provide you with all the information you need'
version: 1.0.0
servers:
-
url: 'https://merchant.lokalink.id'
tags:
-
name: Account
description: ''
-
name: 'Auth Company'
description: ''
-
name: 'Auth Personal'
description: ''
-
name: 'Auth Staff'
description: ''
-
name: Basic
description: ''
-
name: Contact
description: ''
-
name: Endpoints
description: ''
-
name: 'File Upload'
description: ''
-
name: Manage
description: ''
-
name: Outlet
description: ''
-
name: Profile
description: ''
-
name: Staff
description: ''
-
name: Subscription
description: ''
-
name: 'Transfer Data'
description: ''
-
name: Voucher
description: ''
-
name: 'Voucher Claim'
description: ''
paths:
/api/v1/account/notification:
post:
summary: 'Get Notification'
operationId: getNotification
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di dapatkan\",\n\"data\": [\n {\n \"message\": 'Data outlet terhapus',\n \"created_at\": '2021-12-01 12:00:00',\n \"updated_at\": '2021-12-01 12:00:00'\n\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Account
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
is_read:
type: boolean
description: 'Sudah dibaca/belum.'
example: false
nullable: false
security: []
/api/v1/account/notification/read:
post:
summary: 'Read Notification'
operationId: readNotification
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di dapatkan\",\n\"data\": [\n {\n \"message\": 'Data outlet terhapus',\n \"created_at\": '2021-12-01 12:00:00',\n \"updated_at\": '2021-12-01 12:00:00'\n\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Account
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
is_read:
type: boolean
description: 'Sudah dibaca/belum.'
example: false
nullable: false
security: []
/api/v1/account/requestDelete:
post:
summary: 'Request Delete Account'
operationId: requestDeleteAccount
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"data berhasil di dapatkan\",\n\"data\": [data]\n}"
tags:
- Account
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
reason:
type: string
description: 'Alasan menghapus akun.'
example: 'Menghapus akun'
nullable: false
otp:
type: string
description: OTP.
example: '123456'
nullable: false
required:
- reason
- otp
security: []
/api/v1/auth/company/accountdetail:
post:
summary: 'About Company'
operationId: aboutCompany
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil didapatkan\",\n\"data\": [data]\n}"
tags:
- 'Auth Company'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
fullname:
type: string
description: 'Name Lengkap pengguna.'
example: Ferryanto
nullable: false
business_number:
type: phone
description: 'Phone pengguna.'
example: '081213140683'
nullable: false
username:
type: string
description: 'Username pengguna.'
example: ferryanto
nullable: false
company_name:
type: string
description: 'Nama Perusahaan.'
example: 'PT Perusahaan'
nullable: false
position:
type: string
description: 'Jabatan pengguna.'
example: Manager
nullable: false
company_email:
type: email
description: 'Email pengguna.'
example: ferryanto@lokalink.id
nullable: false
required:
- fullname
- business_number
- username
- company_name
- position
- company_email
security: []
/api/v1/auth/register:
post:
summary: Register
operationId: register
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Submit data berhasil\",\n\"data\": [data]\n}"
tags:
- 'Auth Personal'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
phone:
type: phone
description: 'Phone pengguna.'
example: '081213140683'
nullable: false
company:
type: boolean
description: 'Company pengguna.'
example: true
nullable: false
name:
type: string
description: 'Name Lengkap pengguna.'
example: Ferryanto
nullable: false
password:
type: string
description: 'Password pengguna.'
example: zxcasd123
nullable: false
required:
- phone
- company
- name
- password
security: []
/api/v1/auth/validasicode:
post:
summary: 'Validasi OTP Register'
operationId: validasiOTPRegister
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Submit data berhasil\",\n\"data\": [data]\n}"
tags:
- 'Auth Personal'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
phone:
type: phone
description: 'Phone pengguna.'
example: '081213140683'
nullable: false
code:
type: string
description: 'Kode OTP pengguna.'
example: '1234'
nullable: false
required:
- phone
- code
security: []
/api/v1/auth/password:
post:
summary: 'Submit Password Register'
operationId: submitPasswordRegister
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Submit password berhasil\",\n\"data\": [data]\n}"
tags:
- 'Auth Personal'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
phone:
type: phone
description: 'Phone pengguna.'
example: '081213140683'
nullable: false
password:
type: string
description: 'Password pengguna.'
example: zxcasd123
nullable: false
cpassword:
type: string
description: 'Password pengguna.'
example: zxcasd123
nullable: false
required:
- phone
- password
- cpassword
security: []
/api/v1/auth/updateprofile:
post:
summary: 'Update Profile'
operationId: updateProfile
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Update profil user berhasil\",\n\"data\": [data]\n}"
tags:
- 'Auth Personal'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
phone:
type: phone
description: 'Phone pengguna.'
example: '081213140683'
nullable: false
nik:
type: number
description: 'nik pengguna.'
example: 35.0
nullable: false
fullname:
type: string
description: 'fullname pengguna.'
example: Ferryanto
nullable: false
gender:
type: boolean
description: 'gender pengguna.'
example: true
nullable: false
birthplace:
type: string
description: 'birthplace pengguna.'
example: Jakarta
nullable: false
birthday:
type: date
description: 'birthday pengguna.'
example: '2000-01-01'
nullable: false
email:
type: string
description: 'email pengguna.'
example: email@anda.id
nullable: false
required:
- phone
- nik
- fullname
- gender
- birthplace
- birthday
- email
security: []
/api/v1/auth/login:
post:
summary: Login
operationId: login
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Submit Login berhasil\",\n\"data\": [data]\n}"
tags:
- 'Auth Personal'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
phone:
type: phone
description: 'Phone pengguna.'
example: '081213140683'
nullable: false
password:
type: string
description: 'Password pengguna.'
example: zxcasd123
nullable: false
fcm_id:
type: string
description: 'FCM ID pengguna.'
example: 'cFbJxnm_T-igJNrOB7m6os:APA91bHrRAMuReddpS9c_EnOZohtnoBn0jd5y_knsW0VB0us6X9lXpRQVSi7-QswoCvoOPnFSfEckzA771A1idIWIqBJj9GkYOmJwRBQjJ8hu1Wr5MwlYQ8'
nullable: false
required:
- phone
- password
- fcm_id
security: []
/api/v1/auth/updatedetails:
post:
summary: 'Update Details'
operationId: updateDetails
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Update profil user berhasil\",\n\"data\": [data]\n}"
tags:
- 'Auth Personal'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: email
description: 'email pengguna.'
example: ferryanto@lokalink.id
nullable: false
phone:
type: phone
description: 'Phone pengguna.'
example: '081213140683'
nullable: false
name:
type: string
description: 'name pengguna.'
example: Ferryanto
nullable: false
required:
- email
- phone
- name
security: []
/api/v1/auth/forgot:
post:
summary: 'Lupa Password'
operationId: lupaPassword
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Silahkan masukkan kode verifikasi\",\n\"data\": [data]\n}"
tags:
- 'Auth Personal'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
phone:
type: phone
description: 'Phone pengguna.'
example: '081213140683'
nullable: false
required:
- phone
security: []
/api/v1/auth/validasiOTPForgot:
post:
summary: 'Validasi OTP Forgot'
operationId: validasiOTPForgot
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Kode validasi dikenali\",\n\"data\": [data]\n}"
tags:
- 'Auth Personal'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
phone:
type: phone
description: 'Phone pengguna.'
example: '081213140683'
nullable: false
code:
type: string
description: 'Kode OTP pengguna.'
example: '1234'
nullable: false
required:
- phone
- code
security: []
/api/v1/auth/newpassword:
post:
summary: 'New Password'
operationId: newPassword
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Password berhasil di update\",\n\"data\": [data]\n}"
tags:
- 'Auth Personal'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
phone:
type: phone
description: 'Phone pengguna.'
example: '081213140683'
nullable: false
password:
type: string
description: 'Password pengguna.'
example: zxcasd123
nullable: false
cpassword:
type: string
description: 'Password pengguna.'
example: zxcasd123
nullable: false
required:
- phone
- password
- cpassword
security: []
/api/v1/auth/getcode:
post:
summary: 'Request OTP Auth'
operationId: requestOTPAuth
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Silahkan masukkan kode verifikasi\",\n\"data\": [data]\n}"
tags:
- 'Auth Personal'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
phone:
type: phone
description: 'Phone pengguna.'
example: '081213140683'
nullable: false
required:
- phone
security: []
/api/v1/staff/profile:
post:
summary: Profile
operationId: profile
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil didapatkan\",\n\"data\": [data]\n}"
tags:
- 'Auth Staff'
security: []
/api/v1/staff/profile/update:
post:
summary: 'Edit Profile'
operationId: editProfile
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil didapatkan\",\n\"data\": [data]\n}"
tags:
- 'Auth Staff'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Nama pengguna.'
example: 'Baqda ramadan'
nullable: false
required:
- name
security: []
/api/v1/staff/notifications:
post:
summary: 'Get Notifications'
operationId: getNotifications
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil didapatkan\",\n\"data\": [data]\n}"
tags:
- 'Auth Staff'
security: []
/api/v1/staff/delete/request:
post:
summary: 'Request Delete Staff'
operationId: requestDeleteStaff
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil didapatkan\",\n\"data\": [data]\n}"
tags:
- 'Auth Staff'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
reason:
type: string
description: 'Alasan penghapusan staff.'
example: 'Staff tidak aktif'
nullable: false
required:
- reason
security: []
/api/basic/getcode:
post:
summary: 'Get OTP General'
operationId: getOTPGeneral
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Silahkan masukkan kode verifikasi\",\n\"data\": [data]\n}"
tags:
- Basic
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
phone:
type: phone
description: 'Phone pengguna.'
example: '081213140683'
nullable: false
required:
- phone
security: []
/api/basic/validasicode:
post:
summary: 'Validasi OTP General'
operationId: validasiOTPGeneral
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Submit data berhasil\",\n\"data\": [data]\n}"
tags:
- Basic
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
phone:
type: phone
description: 'Phone pengguna.'
example: '081213140683'
nullable: false
code:
type: string
description: 'Kode OTP pengguna.'
example: '1234'
nullable: false
required:
- phone
- code
security: []
/api/v1/basic/city:
post:
summary: 'Master Data Cities'
operationId: masterDataCities
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di dapatkan\",\n\"data\": [\n {\n \"id\": 10,\n \"state_id\": 7,\n \"name\": \"Jakarta Pusat\"\n},\n{\n \"id\": 11,\n \"state_id\": 7,\n\"name\": \"Jakarta Timur\"\n},\n{\n \"id\": 14,\n \"state_id\": 7,\n\"name\": \"Jakarta Selatan\"\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Basic
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
province_id:
type: numeric
description: 'Kode Provinsi .'
example: '10'
nullable: false
required:
- province_id
security: []
/api/v1/basic/province:
post:
summary: 'Master Data Provinces'
operationId: masterDataProvinces
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di dapatkan\",\n\"data\": [\n {\n \"id\": 1,\n \"name\": \"Jawa Timur\"\n},\n{\n \"id\": 7,\n\"name\": \"DKI Jakarta\"\n},\n{\n \"id\": 8,\n\"name\": \"Bali\"\n},\n{\n \"id\": 9,\n\"name\": \"Daerah Istimewa Yogyakarta\"\n},\n{\n \"id\": 10,\n\"name\": \"Banten\"\n},\n{\n \"id\": 11,\n\"name\": \"Sumatera Utara\"\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Basic
security: []
/api/v1/basic/category:
post:
summary: 'Master Data Category'
operationId: masterDataCategory
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"data berhasil di dapatkan\",\n\"data\": [data]\n}"
tags:
- Basic
security: []
/api/v1/basic/subcategory:
post:
summary: 'Master Data Sub Category'
operationId: masterDataSubCategory
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di dapatkan\",\n\"data\": [\n {\n \"id\": 6,\n \"category_id\": 1,\n \"name\": \"Dealer\",\n \"icon_code\": \"\",\n \"code\": \"DLR\",\n},\n{\n \"id\": 7,\n \"category_id\": 1,\n \"name\": \"Used Dealer\",\n \"icon_code\": \"\",\n \"code\": \"UDL\",\n},\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Basic
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
category_id:
type: numeric
description: 'Kode Category .'
example: architecto
nullable: false
required:
- category_id
security: []
/api/v1/basic/provinceall:
post:
summary: 'Master Data Province All'
operationId: masterDataProvinceAll
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di dapatkan\",\n\"data\": [\n {\n \"id\": 11,\n \"provinsi_id\": null,\n \"name\": \"NANGROE ACEH DARUSSALAM\"\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Basic
security: []
/api/v1/basic/cityall:
post:
summary: 'Master Data City All'
operationId: masterDataCityAll
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di dapatkan\",\n\"data\": [\n {\n \"id\": 11,\n\n \"name\": \"Nangroe Aceh Darussalam\"\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Basic
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
province_id:
type: numeric
description: 'Kode Provinsi .'
example: '10'
nullable: false
required:
- province_id
security: []
/api/v1/basic/homecounter:
post:
summary: 'Home Stats.'
operationId: homeStats
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"data berhasil di dapatkan\",\n\"data\": [data]\n}"
tags:
- Basic
security: []
/api/v1/basic/bannerads:
post:
summary: 'Banner Ads'
operationId: bannerAds
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"data berhasil di dapatkan\",\n\"data\": [data]\n}"
tags:
- Basic
security: []
/api/v1/basic/tnc:
post:
summary: 'Terms and Conditions'
operationId: termsAndConditions
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di dapatkan\",\n\"data\": [\n {\n \"id\": 11,\n\n \"name\": \"Nangroe Aceh Darussalam\"\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Basic
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
province_id:
type: numeric
description: 'Kode Provinsi .'
example: '10'
nullable: false
required:
- province_id
security: []
/api/basic/contact-us:
post:
summary: 'Contact Us'
operationId: contactUs
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Pesan berhasil dikirim\",\n\"data\": {\n \"subject\": \"Pertanyaan tentang voucher\",\n \"message\": \"Saya ingin bertanya tentang cara menggunakan voucher\"\n}\n}"
tags:
- Contact
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
subject:
type: string
description: 'Subject pesan.'
example: 'Pertanyaan tentang voucher'
nullable: false
message:
type: string
description: 'Isi pesan.'
example: 'Saya ingin bertanya tentang cara menggunakan voucher'
nullable: false
email:
type: string
description: 'optional Email pengguna.'
example: user@example.com
nullable: true
phone:
type: string
description: 'optional Nomor telepon pengguna.'
example: '08123456789'
nullable: true
required:
- subject
- message
security: []
/api/notification/payment/status:
post:
summary: 'Handle Midtrans payment notification'
operationId: handleMidtransPaymentNotification
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/notification/webhook:
post:
summary: "Handle Midtrans webhook notification\nThis is the dedicated webhook handler using the new service"
operationId: handleMidtransWebhookNotificationThisIsTheDedicatedWebhookHandlerUsingTheNewService
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/v1/auth/logout:
post:
summary: ''
operationId: postApiV1AuthLogout
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/v1/auth/staff/login:
post:
summary: ''
operationId: postApiV1AuthStaffLogin
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
phone:
type: string
description: validation.digits_between.
example: '1374491711936806'
nullable: false
pin:
type: number
description: validation.min.
example: 39
nullable: false
required:
- phone
- pin
security: []
/api/v1/auth/uploadfile:
post:
summary: 'Upload User personal KTP'
operationId: uploadUserPersonalKTP
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"File berhasil di submit\",\n\"data\": [data]\n}"
tags:
- 'File Upload'
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
path_image:
type: string
format: binary
description: 'Foto KTP pengguna max 2MB'
nullable: false
nik:
type: number
description: 'nik pengguna.'
example: 35.0
nullable: false
phone:
type: phone
description: 'Phone pengguna.'
example: '081213140683'
nullable: false
required:
- path_image
- nik
- phone
security: []
/api/v1/auth/uploadSelfies:
post:
summary: 'Upload User Selfies Foto'
operationId: uploadUserSelfiesFoto
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"File berhasil di submit\",\n\"data\": [data]\n}"
tags:
- 'File Upload'
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
path_image:
type: string
format: binary
description: 'Foto KTP pengguna max 2MB'
nullable: false
phone:
type: phone
description: 'Phone pengguna.'
example: '081213140683'
nullable: false
required:
- path_image
- phone
security: []
/api/v1/auth/company/companynib:
post:
summary: 'Upload Company NIB & NPWP'
operationId: uploadCompanyNIBNPWP
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"File berhasil di submit\",\n\"data\": [data]\n}"
tags:
- 'File Upload'
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
nib:
type: string
format: binary
description: 'Image NIB max 2MB'
nullable: false
npwp:
type: string
format: binary
description: 'Image NPWP max 2MB'
nullable: false
phone:
type: phone
description: 'Phone pengguna.'
example: '081213140683'
nullable: false
required:
- nib
- npwp
- phone
security: []
/api/v1/manage/outlet/edit:
post:
summary: 'Outlet Add Description'
operationId: outletAddDescription
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": [\n {\n \"message\": 'Data outlet terhapus',\n \"created_at\": '2021-12-01 12:00:00',\n \"updated_at\": '2021-12-01 12:00:00'\n\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Manage
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
outlet_uuid:
type: string
description: 'UUID Outlet.'
example: 123e4567-e89b-12d3-a456-426614174000
nullable: false
description:
type: string
description: 'Description Outlet.'
example: deskripsi
nullable: false
required:
- outlet_uuid
- description
security: []
/api/v1/manage/outlet/edit/photo:
post:
summary: 'Outlet Add photos'
operationId: outletAddPhotos
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": [\n {\n \"message\": 'Data outlet terhapus',\n \"created_at\": '2021-12-01 12:00:00',\n \"updated_at\": '2021-12-01 12:00:00'\n\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Manage
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
outlet_uuid:
type: string
description: 'UUID Outlet.'
example: 123e4567-e89b-12d3-a456-426614174000
nullable: false
path_image:
type: string
format: binary
description: 'Foto Profile pengguna max 2MB'
nullable: false
type:
type: string
description: 'Type Outlet.'
example: 'menu,background,gallery'
nullable: false
required:
- outlet_uuid
- path_image
- type
security: []
/api/v1/outlet/find:
post:
summary: Find
operationId: find
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"File berhasil di submit\",\n\"data\": [data]\n}"
tags:
- Outlet
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
keyword:
type: string
description: keyword.
example: cafe
nullable: false
city_id:
type: integer
description: city_id.
example: 1
nullable: false
required:
- keyword
- city_id
security: []
/api/v1/outlet/claim:
post:
summary: 'Claim Outlet.'
operationId: claimOutlet
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Claim outlet submitted, please wait for approval\",\n\"data\": [data]\n}"
tags:
- Outlet
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
file_pdf:
type: array
description: 'Pastikan minimal ada 1 file. Must be a file. validation.max.'
items:
type: string
format: binary
explanation:
type: string
description: 'explanation pengguna.'
example: Penjelasan
nullable: false
outlet_uuid:
type: string
description: 'outlet_uuid Outlet.'
example: 123e4567-e89b-12d3-a456-426614174000
nullable: false
'file_pdf[]':
type: string
format: binary
description: 'Array dari file Image. Max 4MB per file.'
nullable: false
required:
- file_pdf
- explanation
- outlet_uuid
- 'file_pdf[]'
security: []
/api/v1/outlet/myclaim:
post:
summary: 'My Claim.'
operationId: myClaim
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"data berhasil didapatkan\",\n\"data\": [data]\n}"
tags:
- Outlet
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
status:
type: string
description: 'explanation pengguna.'
example: 'pending,approved,declined'
nullable: false
required:
- status
security: []
/api/v1/outlet/detail:
post:
summary: 'Detail Outlet'
operationId: detailOutlet
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"File berhasil di submit\",\n\"data\": [data]\n}"
tags:
- Outlet
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
uuid:
type: string
description: uuid.
example: f3b80872-b9cc-42d3-9ef3-6363a2e7dd7f
nullable: false
required:
- uuid
security: []
/api/v1/outlet/addnew:
post:
summary: 'Add Outlet.'
operationId: addOutlet
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"data berhasil didapatkan\",\n\"data\": [data]\n}"
tags:
- Outlet
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
business_type:
type: string
description: 'Tipe Usaha.'
example: Toko
nullable: false
accept_cash:
type: boolean
description: 'Menerima Uang Tunai.'
example: true
nullable: false
accept_debit_card:
type: boolean
description: 'Menerima Kartu Debit.'
example: true
nullable: false
accept_credit_card:
type: boolean
description: 'Menerima Kartu Kredit.'
example: true
nullable: false
name:
type: string
description: 'Nama Outlet.'
example: 'Outlet Baru'
nullable: false
address:
type: string
description: 'Alamat Outlet.'
example: 'Jl. Raya No. 1'
nullable: false
city_id:
type: string
description: 'Kota Outlet.'
example: '12'
nullable: false
photo_1:
type: string
format: binary
description: 'Foto Logo Outlet max 2MB'
nullable: false
photo_2:
type: string
format: binary
description: 'Foto Front Photo Outlet max 2MB'
nullable: false
latitude:
type: string
description: 'Latitude Outlet.'
example: '-6.2088'
nullable: false
longitude:
type: string
description: 'Longitude Outlet.'
example: '106.8456'
nullable: false
phone:
type: string
description: 'Nomor Telepon Outlet.'
example: '08123456789'
nullable: false
category_id:
type: string
description: 'Kategori Outlet.'
example: '1'
nullable: false
province_id:
type: string
description: 'Provinsi Outlet.'
example: '12'
nullable: false
schedule_open:
type: json
description: 'Jadwal Buka Outlet.'
example: '{"senin": "08:00-17:00","selasa": "08:00-17:00","rabu": "08:00-17:00","kamis": "08:00-17:00","jumat": "08:00-17:00","sabtu": "08:00-17:00","minggu": "08:00-17:00"}'
nullable: false
zip_code:
type: string
description: 'Kode Pos Outlet.'
example: '12345'
nullable: false
building_name:
type: string
description: 'optional Nama Bangunan Outlet.'
example: 'Bangunan Baru'
nullable: false
category_name:
type: string
description: 'Nama Kategori Outlet.'
example: Jasa
nullable: false
required:
- business_type
- accept_cash
- accept_debit_card
- accept_credit_card
- name
- address
- city_id
- photo_1
- photo_2
- latitude
- longitude
- phone
- category_id
- province_id
- schedule_open
- zip_code
- category_name
security: []
/api/v1/outlet/addoutletmedia:
post:
summary: 'Add Outlet Media.'
operationId: addOutletMedia
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Images outlet submitted, please wait for approval\",\n\"data\": [data]\n}"
tags:
- Outlet
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
outlet_id:
type: string
description: 'outlet_id Outlet.'
example: '22'
nullable: false
file:
type: string
format: binary
description: 'Array dari file Image. Max 4MB per file.'
nullable: false
required:
- outlet_id
- file
security: []
/api/v1/outlet/editoutlet:
post:
summary: 'Edit Outlet.'
operationId: editOutlet
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"data berhasil didapatkan\",\n\"data\": [data]\n}"
tags:
- Outlet
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
business_name:
type: string
description: 'Nama Usaha.'
example: Toko
nullable: false
business_description:
type: string
description: 'Deskripsi Usaha.'
example: Toko
nullable: false
logo:
type: string
format: binary
description: 'Logo Outlet max 2MB'
nullable: true
front_photo:
type: string
format: binary
description: 'Foto Front Photo Outlet max 2MB'
nullable: true
category:
type: string
description: 'Kategori Outlet.'
example: FnB
nullable: false
outlet_uuid:
type: string
description: 'Outlet UUID Usaha.'
example: 3904-394as-39040
nullable: false
cash:
type: boolean
description: 'Menerima Uang Tunai.'
example: true
nullable: false
debit_card:
type: boolean
description: 'Menerima Kartu Debit.'
example: true
nullable: false
credit_card:
type: boolean
description: 'Menerima Kartu Kredit.'
example: true
nullable: false
address:
type: string
description: 'Alamat Outlet.'
example: 'Jl. Raya No. 1'
nullable: false
building_name:
type: string
description: 'optional Nama Bangunan Outlet.'
example: 'Bangunan Baru'
nullable: true
phone:
type: string
description: 'Nomor Telepon Outlet.'
example: '08123456789'
nullable: false
city:
type: string
description: 'Kota Outlet.'
example: '12'
nullable: false
zipcode:
type: string
description: 'Kode Pos Outlet.'
example: '12345'
nullable: false
latitude:
type: string
description: 'Latitude Outlet.'
example: '-6.2088'
nullable: false
longitude:
type: string
description: 'Longitude Outlet.'
example: '106.8456'
nullable: false
schedule_open:
type: json
description: 'Jadwal Buka Outlet.'
example: '{"senin": "08:00-17:00","selasa": "08:00-17:00","rabu": "08:00-17:00","kamis": "08:00-17:00","jumat": "08:00-17:00","sabtu": "08:00-17:00","minggu": "08:00-17:00"}'
nullable: false
website:
type: string
description: 'optional Website Outlet.'
example: 'https://outlet.com'
nullable: true
facebook:
type: string
description: 'optional Facebook Outlet.'
example: 'https://facebook.com/outlet'
nullable: true
twitter:
type: string
description: 'optional Twitter Outlet.'
example: 'https://twitter.com/outlet'
nullable: true
instagram:
type: string
description: 'optional Instagram Outlet.'
example: 'https://instagram.com/outlet'
nullable: true
whatsapp:
type: string
description: 'optional WhatsApp Outlet.'
example: '08123456789'
nullable: true
required:
- business_name
- business_description
- category
- outlet_uuid
- cash
- debit_card
- credit_card
- address
- phone
- city
- zipcode
- latitude
- longitude
- schedule_open
security: []
/api/v1/outlet/OTPremoveoutlet:
post:
summary: 'Request OTP Remove.'
operationId: requestOTPRemove
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"data berhasil didapatkan\",\n\"data\": [data]\n}"
tags:
- Outlet
security: []
/api/v1/outlet/removeoutlet:
post:
summary: 'Delete My Outlet.'
operationId: deleteMyOutlet
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"data berhasil didapatkan\",\n\"data\": [data]\n}"
tags:
- Outlet
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
otp:
type: string
description: 'OTP User Usaha.'
example: '3904'
nullable: false
reason:
type: string
description: ''
example: architecto
nullable: false
outlet_uuid:
type: string
description: 'Outlet UUID Usaha.'
example: 3904-394as-39040
nullable: false
required:
- otp
- reason
- outlet_uuid
security: []
/api/v1/outlet/mostview:
post:
summary: 'Most View Outlet'
operationId: mostViewOutlet
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"File berhasil di submit\",\n\"data\": [data]\n}"
tags:
- Outlet
security: []
/api/v1/outlet/detail/review/photos:
post:
summary: 'List Media Outlet'
operationId: listMediaOutlet
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"File berhasil di submit\",\n\"data\": [data]\n}"
tags:
- Outlet
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
uuid:
type: string
description: uuid.
example: f3b80872-b9cc-42d3-9ef3-6363a2e7dd7f
nullable: false
required:
- uuid
security: []
/api/v1/auth/myfile:
post:
summary: 'My File'
operationId: myFile
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"File berhasil di submit\",\n\"data\": [data]\n}"
tags:
- Profile
security: []
/api/v1/auth/request/delete:
post:
summary: 'Request Delete'
operationId: requestDelete
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"File berhasil di submit\",\n\"data\": [data]\n}"
tags:
- Profile
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
reason:
type: string
description: 'Alasan penghapusan'
example: architecto
nullable: false
required:
- reason
security: []
/api/v1/auth/change-password:
post:
summary: 'Change Password'
operationId: changePassword
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Password berhasil di update\",\n\"data\": [data]\n}"
tags:
- Profile
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
password:
type: string
description: 'Password pengguna.'
example: zxcasd123
nullable: false
cpassword:
type: string
description: 'Password pengguna.'
example: zxcasd123
nullable: false
required:
- password
- cpassword
security: []
/api/v1/profile/detail:
post:
summary: 'My Profile'
operationId: myProfile
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"File berhasil di submit\",\n\"data\": [data]\n}"
tags:
- Profile
security: []
/api/v1/profile/photo:
post:
summary: Avatar
operationId: avatar
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"File berhasil di submit\",\n\"data\": [data]\n}"
tags:
- Profile
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
path_image:
type: string
format: binary
description: 'Foto Avatar pengguna max 2MB'
nullable: false
required:
- path_image
security: []
/api/v1/profile/edit:
post:
summary: Edit
operationId: edit
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"File berhasil di submit\",\n\"data\": [data]\n}"
tags:
- Profile
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
full_name:
type: string
description: 'Nama Lengkap'
example: architecto
nullable: false
position:
type: string
description: Posisi
example: architecto
nullable: false
username:
type: string
description: Username
example: architecto
nullable: false
phone:
type: string
description: 'Nomor Handphone'
example: architecto
nullable: false
company_name:
type: string
description: 'Nama Perusahaan'
example: architecto
nullable: false
business_number:
type: string
description: 'Nomor Bisnis'
example: architecto
nullable: false
company_email:
type: string
description: 'Email Perusahaan'
example: gbailey@example.net
nullable: false
email:
type: string
description: Email
example: gbailey@example.net
nullable: false
required:
- full_name
- position
- username
- phone
- company_name
- business_number
- company_email
- email
security: []
/api/v1/staff/list:
post:
summary: List
operationId: list
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": [\n {\n \"message\": 'Data outlet terhapus',\n \"created_at\": '2021-12-01 12:00:00',\n \"updated_at\": '2021-12-01 12:00:00'\n\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Staff
security: []
/api/v1/staff/outlet/detail:
post:
summary: 'Outlet Detail'
operationId: outletDetail
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": [\n {\n \"message\": 'Data outlet terhapus',\n \"created_at\": '2021-12-01 12:00:00',\n \"updated_at\": '2021-12-01 12:00:00'\n\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Staff
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
outlet_uuid:
type: string
description: 'UUID Outlet.'
example: 123e4567-e89b-12d3-a456-426614174000
nullable: false
required:
- outlet_uuid
security: []
/api/v1/staff/listbyOutlet:
post:
summary: 'List by Outlet'
operationId: listByOutlet
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": [\n {\n \"message\": 'Data outlet terhapus',\n \"created_at\": '2021-12-01 12:00:00',\n \"updated_at\": '2021-12-01 12:00:00'\n\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Staff
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
outlet_uuid:
type: string
description: 'UUID Outlet.'
example: 123e4567-e89b-12d3-a456-426614174000
nullable: false
required:
- outlet_uuid
security: []
/api/v1/staff/create:
post:
summary: Create
operationId: create
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": [\n {\n \"message\": 'Data outlet terhapus',\n \"created_at\": '2021-12-01 12:00:00',\n \"updated_at\": '2021-12-01 12:00:00'\n\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Staff
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
outlet_uuid:
type: string
description: 'UUID Outlet.'
example: 123e4567-e89b-12d3-a456-426614174000
nullable: false
name:
type: string
description: 'Nama Staff.'
example: Debian
nullable: false
phone:
type: string
description: 'Nomor Telepon Staff.'
example: '081213140683'
nullable: false
pin:
type: numeric
description: 'Pin Staff.'
example: '1234'
nullable: false
jabatan:
type: string
description: 'Jabatan Staff.'
example: Staff
nullable: false
gender:
type: boolean
description: 'gender Staff.'
example: true
nullable: false
required:
- outlet_uuid
- name
- phone
- pin
- jabatan
- gender
security: []
/api/v1/staff/update:
post:
summary: Update
operationId: update
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": {\n \"message\": 'Data outlet terhapus',\n \"created_at\": '2021-12-01 12:00:00',\n \"updated_at\": '2021-12-01 12:00:00'\n\n}\n}"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Staff
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
staff_uuid:
type: string
description: 'UUID Staff.'
example: 123e4567-e89b-12d3-a456-426614174000
nullable: false
name:
type: string
description: 'Nama Staff.'
example: Debian
nullable: false
jabatan:
type: string
description: 'Jabatan Staff.'
example: Manager
nullable: false
phone:
type: string
description: 'Nomor Telepon Staff.'
example: '081213140683'
nullable: false
gender:
type: boolean
description: 'gender Staff.'
example: true
nullable: false
required:
- staff_uuid
- name
- jabatan
- phone
- gender
security: []
/api/v1/staff/delete:
post:
summary: Delete
operationId: delete
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": [\n {\n \"message\": 'Data outlet terhapus',\n \"created_at\": '2021-12-01 12:00:00',\n \"updated_at\": '2021-12-01 12:00:00'\n\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Staff
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
staff_uuid:
type: string
description: 'UUID Staff.'
example: 123e4567-e89b-12d3-a456-426614174000
nullable: false
required:
- staff_uuid
security: []
/api/v1/staff/voucher/claim:
post:
summary: 'Voucher Claim'
operationId: voucherClaim
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Voucher Claim berhasil didapatkan\",\n\"data\": {\n \"title\": \"Voucher A\",\n \"voucher_type\": \"diskon\",\n \"diskon_persen\": 10,\n \"price_awal\": \"200000\",\n \"price_akhir\": \"180000\",\n \"is_enabled\": false,\n}"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Staff
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
status:
type: string
description: 'optional Status Voucher.'
example: claimed
nullable: false
security: []
/api/v1/subscription/midtrans/key:
post:
summary: 'Get Midtrans Key'
operationId: getMidtransKey
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": [\n {\n \"message\": 'Data outlet terhapus',\n \"created_at\": '2021-12-01 12:00:00',\n \"updated_at\": '2021-12-01 12:00:00'\n\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Subscription
security: []
/api/v1/subscription/master:
post:
summary: 'Get Master Plan'
operationId: getMasterPlan
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": [\n {\n \"message\": 'Data outlet terhapus',\n \"created_at\": '2021-12-01 12:00:00',\n \"updated_at\": '2021-12-01 12:00:00'\n\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Subscription
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
type:
type: string
description: 'Type Plan.'
example: subscription
nullable: false
security: []
/api/v1/subscription/subscription/create:
post:
summary: 'Sign Up Enhance'
operationId: signUpEnhance
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": [\n {\n \"message\": 'Data submit berhasil',\n \"created_at\": '2021-12-01 12:00:00',\n \"updated_at\": '2021-12-01 12:00:00'\n\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Subscription
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
outlet_uuids:
type: array
description: 'Array of Outlet UUIDs.'
example:
- 123e4567-e89b-12d3-a456-426614174000
- 123e4567-e89b-12d3-a456-426614175000
items:
type: string
type:
type: string
description: 'Tipe Subscription.'
example: subscription
nullable: false
plan_id:
type: string
description: 'ID Plan.'
example: '1'
nullable: false
start_date:
type: string
description: 'Must be a valid date in the format Y-m-d.'
example: '2026-06-11'
nullable: false
required:
- outlet_uuids
- type
- plan_id
- start_date
security: []
/api/v1/subscription/recreate:
post:
summary: 'Recreate Subscription'
operationId: recreateSubscription
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Subscription berhasil di-recreate\",\n\"data\": [\n {\n \"message\": 'Data submit berhasil',\n \"created_at\": '2021-12-01 12:00:00',\n \"updated_at\": '2021-12-01 12:00:00'\n}\n]\n}"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Subscription
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
enhance_uuids:
type: array
description: 'Enhance UUIDs.'
example: null
items:
type: string
start_date:
type: required
description: 'Start date for new subscription.'
example: '2026-05-04'
nullable: false
security: []
/api/v1/subscription/billing:
post:
summary: 'Billing History'
operationId: billingHistory
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": [\n {\n \"message\": 'Data outlet terhapus',\n \"created_at\": '2021-12-01 12:00:00',\n \"updated_at\": '2021-12-01 12:00:00'\n\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Subscription
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
type:
type: string
description: 'Type of plan (subscription, voucher). Optional.'
example: architecto
nullable: false
status:
type: string
description: 'Status of billing (pending, paid, expired) multi status. Optional.'
example: architecto
nullable: false
security: []
/api/v1/subscription/billing/detail:
post:
summary: 'Billing Detail'
operationId: billingDetail
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": [\n {\n \"message\": 'Data outlet terhapus',\n \"created_at\": '2021-12-01 12:00:00',\n \"updated_at\": '2021-12-01 12:00:00'\n\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Subscription
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
billing_uuid:
type: string
description: 'Billing UUID.'
example: 123e4567-e89b-12d3-a456-426614174000
nullable: false
snap_token:
type: string
description: 'Midtrans Snap Token.'
example: mid-123e4567-e89b-12d3-a456-426614174000
nullable: false
security: []
/api/v1/subscription/billing/payment:
post:
summary: 'Validate Payment'
operationId: validatePayment
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": [\n {\n \"message\": 'Data berhasil di submit',\n \"created_at\": '2021-12-01 12:00:00',\n \"updated_at\": '2021-12-01 12:00:00'\n\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Subscription
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
billing_uuid:
type: string
description: 'Billing UUID.'
example: 123e4567-e89b-12d3-a456-426614174000
nullable: false
security: []
/api/v1/transfer/request:
post:
summary: 'Request Code'
operationId: requestCode
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"File berhasil di submit\",\n\"data\": [data]\n}"
tags:
- 'Transfer Data'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
reason:
type: string
description: 'reason pengguna.'
example: 'ganti pengurus'
nullable: false
outlet_uuids:
type: array
description: 'Array of Outlet UUIDs.'
example:
- 123e4567-e89b-12d3-a456-426614174000
- 123e4567-e89b-12d3-a456-426614175000
items:
type: string
required:
- reason
- outlet_uuids
security: []
/api/v1/transfer/validate:
post:
summary: 'Validate Code'
operationId: validateCode
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"File berhasil di submit\",\n\"data\": [data]\n}"
tags:
- 'Transfer Data'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
kode_transfer:
type: string
description: 'kode transfer.'
example: '1234567890'
nullable: false
required:
- kode_transfer
security: []
/api/v1/transfer/history:
post:
summary: History
operationId: history
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"File berhasil di submit\",\n\"data\": [data]\n}"
tags:
- 'Transfer Data'
security: []
/api/v1/voucher/signup:
post:
summary: SignUp
operationId: signUp
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": [\n {\n \"message\": 'Data submit berhasil',\n \"created_at\": '2021-12-01 12:00:00',\n \"updated_at\": '2021-12-01 12:00:00'\n\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Voucher
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
outlet_uuids:
type: array
description: 'Array of Outlet UUIDs.'
example:
- 123e4567-e89b-12d3-a456-426614174000
- 123e4567-e89b-12d3-a456-426614175000
items:
type: string
banner_image:
type: string
format: binary
description: 'Image banner voucher max 2MB'
nullable: false
plan_id:
type: string
description: 'UUID Plan.'
example: 3333-e89b-12d3-a456-426614174000
nullable: false
type_voucher:
type: string
description: 'Tipe Voucher.'
example: free/diskon
nullable: false
diskon_persen:
type: integer
description: 'Diskon Persen.'
example: 10
nullable: true
title:
type: string
description: 'Title Voucher.'
example: 'Voucher Diskon Spesial'
nullable: false
kuota:
type: string
description: 'Kuota Voucher.'
example: '99'
nullable: false
price_awal:
type: string
description: 'Harga Awal.'
example: '200000'
nullable: true
price_akhir:
type: string
description: 'Harga Diskon.'
example: '150000'
nullable: true
deskripsi:
type: string
description: 'Deskripsi Voucher.'
example: 'Deskripsi Voucher'
nullable: false
tnc:
type: string
description: 'TnC Voucher.'
example: 'Term and Condition Voucher'
nullable: false
contact_person:
type: string
description: 'optional Contact Person Voucher.'
example: '08123456789'
nullable: true
start_date:
type: string
description: 'validation.date validation.after_or_equal.'
example: '2052-07-04'
nullable: true
end_date:
type: string
description: validation.date.
example: '2026-06-11T13:13:21'
nullable: true
required:
- outlet_uuids
- banner_image
- plan_id
- type_voucher
- diskon_persen
- title
- kuota
- price_awal
- price_akhir
- deskripsi
- tnc
security: []
/api/v1/voucher/history:
post:
summary: 'My Voucher'
operationId: myVoucher
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": [\n {\n \"voucher_list\": [\n {\n \"title\": \"Voucher A\",\n \"voucher_type\": \"diskon\",\n \"diskon_persen\": 10,\n \"price_awal\": \"200000\",\n \"price_akhir\": \"180000\",\n }\n ]\n\n}"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Voucher
security: []
/api/v1/voucher/detail:
post:
summary: 'Detail Voucher'
operationId: detailVoucher
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": {\n \"title\": \"Voucher A\",\n \"voucher_type\": \"diskon\",\n \"diskon_persen\": 10,\n \"price_awal\": \"200000\",\n \"price_akhir\": \"180000\",\n}"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Voucher
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
voucher_uuid:
type: string
description: 'UUID Voucher.'
example: 123e4567-e89b-12d3-a456-426614174000
nullable: false
required:
- voucher_uuid
security: []
/api/v1/voucher/activate:
post:
summary: 'Activate Voucher'
operationId: activateVoucher
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Voucher berhasil diaktifkan\",\n\"data\": {\n \"title\": \"Voucher A\",\n \"voucher_type\": \"diskon\",\n \"diskon_persen\": 10,\n \"price_awal\": \"200000\",\n \"price_akhir\": \"180000\",\n \"is_enabled\": true,\n}"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Voucher
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
voucher_uuid:
type: string
description: 'UUID Voucher.'
example: 123e4567-e89b-12d3-a456-426614174000
nullable: false
start_date:
type: string
description: 'Tanggal Mulai Voucher (format Y-m-d).'
example: architecto
nullable: false
end_date:
type: string
description: 'Tanggal Berakhir Voucher (format Y-m-d).'
example: architecto
nullable: false
required:
- voucher_uuid
- start_date
- end_date
security: []
/api/v1/voucher/stop:
post:
summary: 'Stop Voucher'
operationId: stopVoucher
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Voucher berhasil dihentikan\",\n\"data\": {\n \"title\": \"Voucher A\",\n \"voucher_type\": \"diskon\",\n \"diskon_persen\": 10,\n \"price_awal\": \"200000\",\n \"price_akhir\": \"180000\",\n \"is_enabled\": false,\n}\n}"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Voucher
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
voucher_uuid:
type: string
description: 'UUID Voucher.'
example: 123e4567-e89b-12d3-a456-426614174000
nullable: false
required:
- voucher_uuid
security: []
/api/v1/voucher/recreate:
post:
summary: Recreate
operationId: recreate
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": [\n {\n \"message\": 'Data submit berhasil',\n \"created_at\": '2021-12-01 12:00:00',\n \"updated_at\": '2021-12-01 12:00:00'\n\n}\n]"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Voucher
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
voucher_uuids:
type: required
description: 'Voucher UUIDs.'
example: 123e4567-e89b-12d3-a456-426614174000
nullable: false
security: []
/api/v1/voucher/edit:
post:
summary: 'Edit Voucher'
operationId: editVoucher
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": {\n \"title\": \"Voucher A\",\n \"voucher_type\": \"diskon\",\n \"diskon_persen\": 10,\n \"price_awal\": \"200000\",\n \"price_akhir\": \"180000\",\n}\n}"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Voucher
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
voucher_uuid:
type: string
description: 'UUID Voucher.'
example: 123e4567-e89b-12d3-a456-426614174000
nullable: false
title:
type: string
description: 'optional Title voucher.'
example: 'Voucher A'
nullable: false
voucher_type:
type: string
description: 'optional Type voucher.'
example: diskon
nullable: false
diskon_persen:
type: integer
description: 'optional Discount percentage.'
example: 10
nullable: false
price_awal:
type: string
description: 'optional Original price.'
example: '200000'
nullable: false
price_akhir:
type: string
description: 'optional Final price.'
example: '180000'
nullable: false
quota:
type: integer
description: 'optional Quota.'
example: 100
nullable: false
details_promotion:
type: string
description: 'optional Details promotion.'
example: 'Details promotion'
nullable: false
terms_conditions:
type: string
description: 'optional Terms conditions.'
example: 'Terms conditions'
nullable: false
banner_image:
type: string
format: binary
description: 'optional Banner image max 2MB'
nullable: false
contact_person:
type: string
description: 'optional Contact person.'
example: 'Contact person'
nullable: false
required:
- voucher_uuid
security: []
/api/v1/voucher/update/image:
post:
summary: 'Edit Voucher Images'
operationId: editVoucherImages
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": \"success\",\n\"message\": \"Images updated successfully\",\n\"data\": {\n \"voucher_uuid\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"voucher_image_1\": \"path/to/image1.jpg\",\n}\n}"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Voucher
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
voucher_uuid:
type: string
description: 'UUID Voucher.'
example: 123e4567-e89b-12d3-a456-426614174000
nullable: false
voucher_image:
type: string
format: binary
description: 'Image detail voucher max 2MB'
nullable: false
type:
type: string
description: 'Type gambar integer (1-4).'
example: '1'
nullable: false
required:
- voucher_uuid
- voucher_image
- type
security: []
/api/v1/voucher/redeem:
post:
summary: 'Redeem Voucher'
operationId: redeemVoucher
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": [\n {\n \"voucher_title\": \"Voucher A\",\n \"claimed_at\": \"2024-01-01 12:00:00\",\n \"status\": \"claimed\"\n}"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Voucher Claim'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
code:
type: string
description: 'Code for redeem voucher.'
example: L12345678
nullable: false
required:
- code
security: []
/api/v1/voucher/redeem/history:
post:
summary: 'Redeem History'
operationId: redeemHistory
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": [\n {\n \"voucher_title\": \"Voucher A\",\n \"claimed_at\": \"2024-01-01 12:00:00\",\n \"status\": \"claimed\"\n}"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Voucher Claim'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
keyword:
type: string
description: 'Keyword for redeem voucher.'
example: 'Nama Voucher'
nullable: false
security: []
/api/v1/voucher/redeem/detail:
post:
summary: 'Redeem Detail'
operationId: redeemDetail
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil di submit\",\n\"data\": [\n {\n \"voucher_title\": \"Voucher A\",\n \"claimed_at\": \"2024-01-01 12:00:00\",\n \"status\": \"claimed\"\n}"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Voucher Claim'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
code:
type: string
description: 'code required for redeem voucher.'
example: L90099090
nullable: false
security: []
/api/v1/voucher/redeem/reject:
post:
summary: 'Redeem Reject'
operationId: redeemReject
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Voucher claim berhasil di-reject\",\n\"data\": {\n \"id\": 1,\n \"code\": \"L90099090\",\n \"status\": \"rejected\",\n \"staff_id\": 1,\n \"updated_at\": \"2024-01-01 12:00:00\"\n}\n}"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Voucher Claim'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
code:
type: string
description: 'Code for reject voucher claim.'
example: L90099090
nullable: false
required:
- code
security: []
/api/v1/voucher/redeem/logs:
post:
summary: 'Redeem Logs'
operationId: redeemLogs
description: ''
parameters: []
responses:
200:
description: ''
content:
text/plain:
schema:
type: string
example: "{\n\"status\": success,\n\"message\": \"Data berhasil diambil\",\n\"data\": [\n {\n \"id\": 1,\n \"uuid\": \"claim-uuid\",\n \"code\": \"L90099090\",\n \"voucher\": {\n \"uuid\": \"voucher-uuid\",\n \"title\": \"Voucher A\",\n \"voucher_type\": \"diskon\",\n \"diskon_persen\": 20,\n \"quota\": 100\n },\n \"redeemBy\": {\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"username\": \"08123456789\"\n },\n \"staffBy\": {\n \"id\": 1,\n \"name\": \"Staff Name\",\n \"jabatan\": \"Kasir\"\n },\n \"claimed_at\": \"2024-01-01 12:00:00\",\n \"status\": \"claimed\"\n }\n]\n}"
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Voucher Claim'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
voucher_uuids:
type: array
description: 'Voucher UUIDs to get redeem logs.'
example:
- 123e4567-e89b-12d3-a456-426614174000
items:
type: string
required:
- voucher_uuids
security: []