---
# System prepended metadata

title: Invoices Endpoint
tags: [Invoices, Technical Reference, Endpoints]

---

# Invoices Endpoint

## Note

```
Check Payment Transactions Documentation for more information on processing the payment.
This document focuses on the Invoice Management
```

## ServiceURL and Payload

### Management

#### GenerateOrderID

> This endpoint is to generate the InvoiceNumber

##### Endpoint : /api/Transaction/generateorder

##### Payload : 

```
{
  "moduleTag": "string",
  "tenantID": "uniqueidentifier"
}
```

##### Sample Use:
```
{
  "moduleTag": "IN",
  "tenantID": "778df26c-1aab-4f5e-93fd-e4cae2c1bc39"
}
```

---

#### CreateInvoice
##### Endpoint : /api/Invoices/createinvoice
##### Payload : 
```
{
  "tenantID": "uniqueidentifier",
  "customerID": "uniqueidentifier",
  "invoiceNumber": "string", -- Refer to GenerateOrder endpoint
  "invoiceDate": "date",
  "dueDate": "date", --SHOULD NOT BE BEFORE INVOICEDATE
  "invoiceStatusID": int (default to 1 as this is new)
  "poNumber": "string",
  "invoiceTotal": DECIMAL (18,2),
  "additionsTotal": DECIMAL (18,2),
  "itemTotals": DECIMAL (18,2),
  "taxTotal": DECIMAL (18,2),
  "deductionTotal": DECIMAL (18,2),
  "balanceDue": DECIMAL (18,2),
  "invoiceItemString": "string", --IN JSON FORMAT. See note below
  "additionsString": "string", --IN JSON FORMAT. See note below
  "deductionString": "string", --IN JSON FORMAT. See note below
  "taxString": "string", --IN JSON FORMAT. See note below
  "departmentID": "uniqueidentifier",
  "invoiceTemplateID": INT,
  "termsString": "string", 
  "invoiceNotes": "string",
  "receiptEmail": "string",
  "receiptSMS": "string", -- Contact Number. Refer to selected information of the customer
  "creator": "uniqueidentifier",
  "isDraft": bool (set to False if saved new. True if Save to Draft)
}
```
---
#### UpdateInvoice
##### Endpoint : /api/Invoices/updateinvoice
##### Payload : 
```
{
  "invoiceID": "uniqueidentifier",
  "tenantID": "uniqueidentifier",
  "invoiceNumber": "string",
  "customerID": "uniqueidentifier",
  "invoiceDate": "date",
  "dueDate": "date",
  "invoiceStatusID": INT, -- SEE Invoice Status Lookup
  "poNumber": "string",
  "invoiceTotal": DECIMAL(18,2),
  "additionsTotal": DECIMAL(18,2),
  "itemTotals": DECIMAL(18,2),
  "taxTotal": DECIMAL(18,2),
  "deductionTotal": DECIMAL(18,2),
  "balanceDue": DECIMAL(18,2),
  "invoiceItemString": "string", --IN JSON FORMAT. See Note below
  "additionsString": "string", --IN JSON FORMAT. See Note below
  "deductionString": "string", --IN JSON FORMAT. See Note below
  "taxString": "string", --IN JSON FORMAT. See Note below
  "departmentID": "uniqueidentifier",
  "invoiceTemplateID": 0,
  "termsString": "string",
  "invoiceNotes": "string",
  "receiptEmail": "string",
  "receiptSMS": "string",
  "updater": "uniqueidentifier"
}
```
---
#### DeleteInvoice
##### Endpoint : /api/Invoices/deleteinvoice
##### Payload : 
```
{
  "invoiceID": "uniqueidentifier",
  "updater": "uniqueidentifier"
}
```
---
#### GetInvoiceDetail
##### Endpoint : /api/Invoices/getinvoicedetail
##### Payload : 
`InvoiceID : uniqueidentifier`

---
#### ListInvoices
##### Endpoint : /api/Invoices/listinvoices
##### Payload : 
`TenantID : uniqueidentifier`

---
### Payment Transaction
#### Endpoint : /api/Transaction/createtransactionlogentry
#### Payload : 
```
{
  "tenantID": "uniqueidentifier",
  "transactionNumber": "string",
  "transactionModule": "string", -- INVOICE
  "transactionStatus": "string", -- success or whatever is the error
  "transactionDetail": "string", -- JSON format / resptext
  "creator": "uniqueidentifier",
  "moduleEntry": "string" -- JSON Format (to follow)
}
```
---

### TransactionViewList

#### Endpoint : /api/Transaction/transactionviewlist/{module}/{tenantId}

#### Payload : 

```
module : string
tenantId : uniqueidentifier
```

#### Sample : 

```
module : IN
tenantId : 778DF26C-1AAB-4F5E-93FD-E4CAE2C1BC39
```

#### Response:
```
[
  {
    "id": "762a415a-644b-4826-a760-8db9fe44eff8",
    "tenantID": "778df26c-1aab-4f5e-93fd-e4cae2c1bc39",
    "transactionID": "8e251da9-eee2-4a65-9157-ab7942795655",
    "departmentID": "6fafea6e-ce76-44b0-a1da-d7facad251fd",
    "departmentName": "Main",
    "transactionNumber": "IN2024520BC397576",
    "customerID": "6844D0DF-4012-438F-95D6-19118E68EAF3",
    "customerName": "",
    "amountPaid": 10,
    "transactionStatus": null,
    "transactionDate": "2024-05-29T13:51:00"
  }
]
```

---

## Notes on JSON Format

### On Invoice Item String
* Should contain information that were gathered from the UI
* If the item was selected from the inventory, include itemID for tracking purposes

##### Sample
```
{
    "itemID": "20240619-01", -- For custom items (not selected from inventory), use YYYYMMDD-XX (XX is incremental 2digit number indicating the item id for that specific list)
    "itemName": "Fuji Apples",
    "itemPrice": "5.00",
    "itemCurrency": "USD",
    "itemDescription": "Apple - Fruit",
    "itemQty": 12.00,
    "itemUnit": "Piece",
    "itemLineAmount": 60.00 
}
```

### On Additions String
* This includes the adjustments such as Upcharges or Service Fees (if applicable)
* If adjustment was selected from the inventory, include upchargeID

##### Sample
```
{
    "additionID": "add01", --Make this incremental for specific invoice only
    "additionName": "Upcharge: 5%",
    "additionType": "Rate",
    "additionValue": 5.00,
    "additionAmount": 3.00 -- computed against the items total
    
}
```

### On Deduction String
* This includes discounts
* If adjustment was selected from the inventory, include discountID or DeductionID (anything related to deductions)

### On Tax String
* This focuses on tax
* Include the Tax Type, Rate, Amount computed
* If it was selected from the Tax lookup, include TaxID