---
title: "Data Models and Customizations"
space: "Digital Invoicing"
url: "https://docs.kodlyft.com/digital-invoicing/data-models-and-customizations"
updated: "2026-05-16"
---

This document covers the schema extensions and doctypes introduced by the  
Digital Invoicing app.  



## Installation and Migration Behavior

### After Install

`di.install.after_install()` creates the custom fields.  



### After Migrate

`di.migrate.after_migrate()` re-applies custom fields to keep the ERPNext schema  
aligned with the app. 



> Make sure your site do not have custom fields that are present in `di` app

## Core App Doctypes

The app defines these primary doctypes:  



- `DI Settings`  
- `DI Log`  
- `Province`  
- `HS Code`  
- `HS Uom`  
- `Sale Type`  
- `Transaction Type`  
- `SRO Schedule`  
- `SRO Item`  
- `Sandbox Scenario`  
- `Company Sale Type`  
- `Company Sandbox Scenario`  
- `DI Error Code`





## DI Settings

`DI Settings` is the central company configuration doctype.  



It stores:  



- enable/disable state  
- sync mode  
- auto-post toggle  
- access token  
- POS fiscal settings  
- company NTN/CNIC, province, and address  
- company sale types  
- company sandbox scenarios





## DI Log

`DI Log` stores the audit trail for API activity.  



Typical fields include:  



- title  
- document type  
- document name  
- API type  
- status  
- FBR invoice number  
- payload  
- response  
- error code  
- error message





## ERPNext Custom Field Extensions

The app creates custom fields on ERPNext doctypes to collect FBR-specific data.  



### Customer

- NTN / CNIC  
- DI Address  
- Province  
- Registration Type  
- Enable Digital Invoicing





### Supplier

- DI Address  
- Province  
- Registration Type





### Company

- FBR settings tab  
- company sale type table





### Item

- HS Code  
- HS UOM  
- Sale Type  
- SRO item serial number  
- SRO schedule number





### Sales Invoice

- FBR invoice number  
- DI posted flag  
- DI posting datetime  
- DI invoice type  
- QR code storage  
- sandbox scenario selector





### Sales Invoice Item

- HS Code  
- HS UOM  
- Sale Type  
- SRO serial number  
- SRO schedule number  
- FED payable





### Purchase Invoice

- FBR invoice number  
- DI posted flag  
- posting datetime





### Purchase Invoice Item

- HS Code





### Sales Taxes and Charges

- DI tax type





Supported values:  



- `Sales Tax`  
- `Further Tax`  
- `Advance Tax`





### POS Profile

- enable FBR integration  
- FBR environment  
- FBR POS ID  
- FBR bearer token  
- optional FBR API URL override





### Mode of Payment

- FBR payment mode code





## Event Hooks That Use the Data Model

The app registers these document event hooks:  



- `Sales Invoice.before_submit`  
- `Purchase Invoice.before_submit`  
- `Item.before_save`  
- `Company.before_save`





These hooks rely on the custom fields above to validate and build FBR payloads.