POST /api/auth/register
Request Body :
{
"name": "Mas Amba",
"email": "masamba@gmail.com",
"password": "ambapasseword", // min 6 characters
"service_type": "BARBER" // enum("BARBER","FREELANCER", "OTHER")
}Response Body (Success) :
{
"success": true,
"message": "User berhasil register!",
"data": {
"email": "masamba@gmail.com",
"name": "Mas Amba"
}
}Response Body (Failed) :
{
"errors": "Email already registered"
}POST /api/auth/login
Request Body :
{
"email": "masamba@gmail.com",
"password": "ambapasseword" // min 6 characters
}Response Body (Success) :
{
"success": true,
"message": "User berhasil login!",
"data": {
"email": "masamba@gmail.com",
"name": "Mas Amba",
"token": "********************" // secret token
}
}Response Body (Failed) :
{
"errors": "Email or password is invalid"
}POST /api/transactions
Headers :
- Authorization: token
Request Body :
{
"title": "Service Ac",
"amount": "100000",
"transaction_date": "2025-12-07T15:30:00.000Z"
}Response Body :
{
"success": true,
"message": "Transaction berhasil dibuat!",
"data": {
"id": "8672d6c3-dce6-4ea5-ba68-af223aa17f2e",
"title": "Service Ac",
"amount": "100000",
"transaction_date": "2025-12-07T15:30:00.000Z"
}
}PUT /api/transactions/:transactionId
Headers :
- Authorization: token
Request Body :
{
"title": "Service Kulkas",
"amount": "25000",
"transaction_date": "2025-12-07T15:30:00.000Z"
}Response Body :
{
"success": true,
"message": "Transaction berhasil diupdate!",
"data": {
"id": "f80031cd-21a1-4519-a25f-3a2e791d0002",
"title": "Service Kulkas",
"amount": "25000",
"transaction_date": "2025-12-07T15:30:00.000Z"
}
}DELETE /api/transactions/:transactionId
Headers :
- Authorization: token
Response Body :
{
"success": true,
"message": "Transaction f80031cd-21a1-4519-a25f-3a2e791d0002 berhasil dihapus!"
}GET /api/transactions
Headers :
- Authorization: token
Query Params :
- title: string
- amount: string
- page: number, default 1
- size: number, default 10
Response Body :
{
"success": true,
"message": "Transaction berhasil difetch!",
"data": [
{
"id": "00062e98-69b3-49b8-9078-b1ac79186c40",
"title": "Service Ac",
"amount": "100000",
"transaction_date": "2025-12-07T15:30:00.000Z"
},
{
"id": "6e0d6cd9-2221-4bdd-9cd1-49419edb9901",
"title": "Service Ac",
"amount": "100000",
"transaction_date": "2025-12-07T15:30:00.000Z"
},
{
"id": "8672d6c3-dce6-4ea5-ba68-af223aa17f2e",
"title": "Service Ac",
"amount": "100000",
"transaction_date": "2025-12-07T15:30:00.000Z"
}
],
"paging": {
"current_page": 1,
"size": 10,
"total_page": 0
}
}POST /api/expenses
Headers :
- Authorization: token
Request Body :
{
"title": "Makan Nashy Kucink",
"amount": "2500",
"transaction_date": "2025-12-07T15:30:00.000Z"
}Response Body :
{
"success": true,
"message": "Expense berhasil dibuat!",
"data": {
"id": "8672d6c3-dce6-4ea5-ba68-af223aa17f2e",
"title": "Makan Nashy Kucink",
"amount": "2500",
"transaction_date": "2025-12-07T15:30:00.000Z"
}
}PUT /api/expenses/:expenseId
Headers :
- Authorization: token
Request Body :
{
"title": "Makan Nashy Padank",
"amount": "50000",
"transaction_date": "2025-12-07T15:30:00.000Z"
}Response Body :
{
"success": true,
"message": "Transaction berhasil diupdate!",
"data": {
"id": "f80031cd-21a1-4519-a25f-3a2e791d0002",
"title": "Makan Nashy Padank",
"amount": "50000",
"transaction_date": "2025-12-07T15:30:00.000Z"
}
}DELETE /api/expenses/:expenseId
Headers :
- Authorization: token
Response Body :
{
"success": true,
"message": "Expense f80031cd-21a1-4519-a25f-3a2e791d0002 berhasil dihapus!"
}GET /api/expenses
Headers :
- Authorization: token
Query Params :
- title: string
- amount: string
- page: number, default 1
- size: number, default 10
Response Body :
{
"success": true,
"message": "Expense berhasil difetch!",
"data": [
{
"id": "f80031cd-21a1-4519-a25f-3a2e791d0002",
"title": "Makan Nashy Padank",
"amount": "50000",
"transaction_date": "2025-12-07T15:30:00.000Z"
},
{
"id": "f80031cd-21a1-4519-a25f-3a2e79120002",
"title": "Makan Nashy Padank",
"amount": "50000",
"transaction_date": "2025-12-07T15:30:00.000Z"
},
{
"id": "f80031cd-21a1-4519-a25f-3a2e791e0002",
"title": "Makan Nashy Padank",
"amount": "50000",
"transaction_date": "2025-12-07T15:30:00.000Z"
}
],
"paging": {
"current_page": 1,
"size": 10,
"total_page": 0
}
}