diff --git a/src/handler/order/order.router.ts b/src/handler/order/order.router.ts
new file mode 100644
index 0000000000000000000000000000000000000000..41e41b0539f4088cad44d2f35140bcdaddf85252
--- /dev/null
+++ b/src/handler/order/order.router.ts
@@ -0,0 +1,15 @@
+import express from "express";
+import type { Request, Response } from "express";
+
+import * as OrderServices from './order.service'
+
+export const OrderRouter = express.Router()
+
+OrderRouter.get('/available-order', async (request: Request, response: Response) => {
+    try {
+        const availableOrder = await OrderServices.getAvailableOrder();
+        return response.status(200).json(availableOrder);
+    } catch (error: any) {
+        return response.status(500).json(error.message);
+    }
+})
\ No newline at end of file
diff --git a/src/handler/order/order.service.ts b/src/handler/order/order.service.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9140dac1ed03a4ee802b2fc6efe06b124bff9a72
--- /dev/null
+++ b/src/handler/order/order.service.ts
@@ -0,0 +1,18 @@
+import { getPesananNoKurir } from "../soap-caller/PesananSoapCaller";
+import OrderInterface from "../../interfaces/OrderInterface";
+
+export async function getAvailableOrder() {
+    const response = await getPesananNoKurir();
+    console.log(response);
+    if(response === null) {
+        return [];
+    }
+
+    const JSONArray = Array.isArray(response) ? response : [response];
+
+    const availableOrder = JSONArray.map((item: any) => {
+        return JSON.parse(JSON.stringify(item)) as OrderInterface;
+    });
+
+    return availableOrder;
+}
\ No newline at end of file
diff --git a/src/interfaces/OrderDetail.ts b/src/interfaces/OrderDetail.ts
new file mode 100644
index 0000000000000000000000000000000000000000..46cf53060e1c2400bdf37ead9dd0ecfe0edb2b81
--- /dev/null
+++ b/src/interfaces/OrderDetail.ts
@@ -0,0 +1,7 @@
+
+export default interface OrderDetail {    
+    id_pesanan : number
+    nama_produk : string
+    quantity : number
+    harga : number
+}
\ No newline at end of file
diff --git a/src/interfaces/OrderInterface.ts b/src/interfaces/OrderInterface.ts
new file mode 100644
index 0000000000000000000000000000000000000000..39b914dfcc7751a15bf9b1e940e440af69ee8f4a
--- /dev/null
+++ b/src/interfaces/OrderInterface.ts
@@ -0,0 +1,13 @@
+import OrderStatus from "./OrderStatus"
+
+export default interface OrderInterface {
+    alamat : string
+    biaya_pengiriman : number
+    harga : number
+    id : number
+    id_kurir : number
+    id_pemesan : number
+    keterangan : string
+    nama_penerima : string
+    status : OrderStatus
+}
\ No newline at end of file
diff --git a/src/interfaces/OrderStatus.ts b/src/interfaces/OrderStatus.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a49f9585cb85e6386385958d13025693cb168f2e
--- /dev/null
+++ b/src/interfaces/OrderStatus.ts
@@ -0,0 +1,4 @@
+
+type OrderStatus = 'searching_courier' | 'pickup' | 'transit' | 'delivered';
+
+export default OrderStatus;
\ No newline at end of file