diff --git a/apps/api/urls.py b/apps/api/urls.py
index b275a0b87665464550f57ae7ea1dcdb943370183..67fdba309267bca584d7869b15d92341cf1ba2db 100644
--- a/apps/api/urls.py
+++ b/apps/api/urls.py
@@ -12,6 +12,7 @@ from activity.api.urls import register_activity_urls
 from api.viewsets import ReadProtectedModelViewSet
 from member.api.urls import register_members_urls
 from note.api.urls import register_note_urls
+from treasury.api.urls import register_treasury_urls
 from logs.api.urls import register_logs_urls
 from permission.api.urls import register_permission_urls
 
@@ -74,6 +75,7 @@ router.register('user', UserViewSet)
 register_members_urls(router, 'members')
 register_activity_urls(router, 'activity')
 register_note_urls(router, 'note')
+register_treasury_urls(router, 'treasury')
 register_permission_urls(router, 'permission')
 register_logs_urls(router, 'logs')
 
diff --git a/apps/treasury/api/serializers.py b/apps/treasury/api/serializers.py
new file mode 100644
index 0000000000000000000000000000000000000000..c835fd801f07dcf0e2cad7519d0e81fa6b17a4f2
--- /dev/null
+++ b/apps/treasury/api/serializers.py
@@ -0,0 +1,34 @@
+# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+from rest_framework import serializers
+
+from ..models import Invoice, Product
+
+
+class ProductSerializer(serializers.ModelSerializer):
+    """
+    REST API Serializer for Product types.
+    The djangorestframework plugin will analyse the model `Product` and parse all fields in the API.
+    """
+
+    class Meta:
+        model = Product
+        fields = '__all__'
+
+
+class InvoiceSerializer(serializers.ModelSerializer):
+    """
+    REST API Serializer for Invoice types.
+    The djangorestframework plugin will analyse the model `Invoice` and parse all fields in the API.
+    """
+    class Meta:
+        model = Invoice
+        fields = '__all__'
+        read_only_fields = ('bde',)
+
+    products = serializers.SerializerMethodField()
+
+    def get_products(self, obj):
+        return serializers.ListSerializer(child=ProductSerializer())\
+            .to_representation(Product.objects.filter(invoice=obj).all())
diff --git a/apps/treasury/api/urls.py b/apps/treasury/api/urls.py
new file mode 100644
index 0000000000000000000000000000000000000000..ff3a606f4be936c9ebed080cbe33637f3aeee935
--- /dev/null
+++ b/apps/treasury/api/urls.py
@@ -0,0 +1,12 @@
+# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+from .views import InvoiceViewSet, ProductViewSet
+
+
+def register_treasury_urls(router, path):
+    """
+    Configure router for treasury REST API.
+    """
+    router.register(path + '/invoice', InvoiceViewSet)
+    router.register(path + '/product', ProductViewSet)
diff --git a/apps/treasury/api/views.py b/apps/treasury/api/views.py
new file mode 100644
index 0000000000000000000000000000000000000000..2f35b92cdc032fb5c505e82b0b45ac16a798ff9e
--- /dev/null
+++ b/apps/treasury/api/views.py
@@ -0,0 +1,33 @@
+# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+from django_filters.rest_framework import DjangoFilterBackend
+from rest_framework.filters import SearchFilter
+from api.viewsets import ReadProtectedModelViewSet
+
+from .serializers import InvoiceSerializer, ProductSerializer
+from ..models import Invoice, Product
+
+
+class InvoiceViewSet(ReadProtectedModelViewSet):
+    """
+    REST API View set.
+    The djangorestframework plugin will get all `Invoice` objects, serialize it to JSON with the given serializer,
+    then render it on /api/treasury/invoice/
+    """
+    queryset = Invoice.objects.all()
+    serializer_class = InvoiceSerializer
+    filter_backends = [DjangoFilterBackend]
+    filterset_fields = ['bde', ]
+
+
+class ProductViewSet(ReadProtectedModelViewSet):
+    """
+    REST API View set.
+    The djangorestframework plugin will get all `Product` objects, serialize it to JSON with the given serializer,
+    then render it on /api/treasury/product/
+    """
+    queryset = Product.objects.all()
+    serializer_class = ProductSerializer
+    filter_backends = [SearchFilter]
+    search_fields = ['$designation', ]