diff --git a/hypha/apply/projects/migrations/0042_add_external_project_id_field.py b/hypha/apply/projects/migrations/0042_add_external_project_id_field.py
new file mode 100644
index 0000000000000000000000000000000000000000..b83bb3db64a27e064fef3255ed3d97dbc6ab2a38
--- /dev/null
+++ b/hypha/apply/projects/migrations/0042_add_external_project_id_field.py
@@ -0,0 +1,18 @@
+# Generated by Django 2.2.24 on 2021-11-10 13:24
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('application_projects', '0041_payment_requests_cleanup'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='project',
+            name='external_projectid',
+            field=models.CharField(blank=True, help_text='ID of this project at integrated payment service.', max_length=30),
+        ),
+    ]
diff --git a/hypha/apply/projects/models/project.py b/hypha/apply/projects/models/project.py
index ec35612efb73beef6812caa1f32ab3c21a5af639..c0e92247036e98101ec1b7c858095cda6ac04772 100644
--- a/hypha/apply/projects/models/project.py
+++ b/hypha/apply/projects/models/project.py
@@ -157,7 +157,11 @@ class Project(BaseStreamForm, AccessFormData, models.Model):
         related_query_name='project',
     )
     created_at = models.DateTimeField(auto_now_add=True)
-
+    external_projectid = models.CharField(
+        max_length=30,
+        blank=True,
+        help_text='ID of this project at integrated payment service.'
+    )
     sent_to_compliance_at = models.DateTimeField(null=True)
 
     objects = ProjectQuerySet.as_manager()
diff --git a/hypha/apply/projects/services/sageintacct/utils.py b/hypha/apply/projects/services/sageintacct/utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..54f7715bdb16543d5566548db3ccab1b2f7d0947
--- /dev/null
+++ b/hypha/apply/projects/services/sageintacct/utils.py
@@ -0,0 +1,28 @@
+from django.conf import settings
+from .sageintacctsdk import SageIntacctSDK
+
+
+def fetch_deliverable(program_project_id=''):
+    if not program_project_id:
+        return []
+    formatted_filter = {
+        'and': {
+            'equalto': [
+                {'field': 'DOCPARID', 'value': 'Project Contract'},
+                {'field': 'DEPARTMENTID', 'value': program_project_id}
+            ],
+            'greaterthan': {'field': 'QTY_REMAINING', 'value': 0.0}
+        }
+    }
+
+    connection = SageIntacctSDK(
+        sender_id=settings.INTACCT_SENDER_ID,
+        sender_password=settings.INTACCT_SENDER_PASSWORD,
+        user_id=settings.INTACCT_USER_ID,
+        company_id=settings.INTACCT_COMPANY_ID,
+        user_password=settings.INTACCT_USER_PASSWORD
+    )
+
+    deliverables = connection.purchasing.get_by_query(filter_payload=formatted_filter)
+
+    return deliverables
diff --git a/hypha/apply/projects/services/sageintacct/wrapper/constants.py b/hypha/apply/projects/services/sageintacct/wrapper/constants.py
index 6c6acad5d48b736c9c41b3533f29968214920a8e..ceae10b28eea0f3b19c7199c9c39ee8d3dade065 100644
--- a/hypha/apply/projects/services/sageintacct/wrapper/constants.py
+++ b/hypha/apply/projects/services/sageintacct/wrapper/constants.py
@@ -3,8 +3,8 @@ dimensions_fields_mapping = {
         'ITEMID',
         'ITEMNAME',
         'ITEMDESC',
-        'QUANTITY',
+        'QTY_REMAINING',
         'UNIT',
-        'DEPARTMENTID',
+        'PRICE',
     ],
 }
diff --git a/hypha/apply/projects/services/sageintacct/wrapper/purchasing.py b/hypha/apply/projects/services/sageintacct/wrapper/purchasing.py
index c9e0774d5c2f99a32b8481e70b0bb5504ba20136..628169d689cd5e1b8ff0635b43664c45a20374fc 100644
--- a/hypha/apply/projects/services/sageintacct/wrapper/purchasing.py
+++ b/hypha/apply/projects/services/sageintacct/wrapper/purchasing.py
@@ -2,7 +2,6 @@
 """
 Sage Intacct purchasing
 """
-
 from .api_base import ApiBase
 
 
diff --git a/hypha/apply/projects/utils.py b/hypha/apply/projects/utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..510ba09500cc68c54906f4334b59fa6ffbd9255b
--- /dev/null
+++ b/hypha/apply/projects/utils.py
@@ -0,0 +1,18 @@
+from .models import Project, Deliverable
+
+
+def save_deliverables(project_id, deliverables=[]):
+    project = Project.objects.get(id=project_id)
+
+    deliverable_list = []
+    for deliverable in deliverables:
+        deliverable_list.append(
+            Deliverable(
+                name=deliverable['ITEMNAME'],
+                available_to_invoice=int(float(deliverable['QTY_REMAINING'])),
+                unit_price=deliverable['PRICE'],
+                project=project
+            )
+        )
+
+    Deliverable.objects.bulk_create(deliverable_list)